• NSThread


    - (void)creatNSThread{
        //1、创建线程后启动线程
        NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(run) object:nil];
        [thread start];
        
        
        //2、创建线程后自动启动线程
        [NSThread detachNewThreadSelector:@selector(run) toTarget:self withObject:nil];
        
        //3、隐式创建并启动线程
        [self performSelectorInBackground:@selector(run) withObject:nil];
        
        /*
         + (NSThread *)mainThread; //获得主线程
         - (BOOL)isMainThread; //判断是否为主线程(对象方法)
         + (BOOL)isMainThread; //判断是否为主线程(类方法)
         NSThread *current = [NSThread currentThread]; //获得当前线程
         - (void)setName:(NSString *)n; //线程的名字——setter方法
         - (NSString *)name; //线程的名字——getter方法
        
         - (void)start;  //启动线程方法
         //阻塞(暂停)线程方法
         + (void)sleepUntilDate:(NSDate *)date;
         + (void)sleepForTimeInterval:(NSTimeInterval)ti;
        
         + (void)exit;  //强制停止线程  线程进入死亡状态
         
         // 在主线程上执行操作
         - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait;
         - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait modes:(NSArray<NSString *> *)array;
         // equivalent to the first method with kCFRunLoopCommonModes
         
         // 在指定线程上执行操作
         - (void)performSelector:(SEL)aSelector onThread:(NSThread *)thr withObject:(id)arg waitUntilDone:(BOOL)wait modes:(NSArray *)array;
         - (void)performSelector:(SEL)aSelector onThread:(NSThread *)thr withObject:(id)arg waitUntilDone:(BOOL)wait;
         
         // 在当前线程上执行操作,调用 NSObject 的 performSelector:相关方法
         - (id)performSelector:(SEL)aSelector;
         - (id)performSelector:(SEL)aSelector withObject:(id)object;
         - (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;
         
         //performSelectorOnMainThread
         */
       
        
        
    }
    
    - (void)run{
        NSLog(@"线程运行啦==%@", [NSThread currentThread]);
    }

      线程状态转换

  • 相关阅读:
    转贴:.net中using的几种用途
    codebehind的优先权大于codeinline
    access的存储过程
    11.26笔记
    vs2005中的快捷键总结
    关于填充datagrid
    猫叫了,所有老鼠开始逃跑经典面试题
    面向对象的三个基本特征(讲解)
    在中文VS2008中安装ASP.NET MVC框架
    测试驱动开发全功略
  • 原文地址:https://www.cnblogs.com/whongs/p/9149945.html
Copyright © 2020-2023  润新知