美文网首页
NSThread创建线程的方式

NSThread创建线程的方式

作者: Howeix | 来源:发表于2019-08-21 23:13 被阅读0次

NSThread通常来说, 有以下3种创建子线程的方式:

1.通过[[NSThread alloc] init]可以实例化一个线程对象(也就是直接可以通过此方式创建并获取一个子线程对象):

通过初始化创建子线程对象,将要在子线程中执行的任务放在block中传入:

NSThread *thread = [[NSThread alloc] initWithBlock:^{
      for (int i = 0 ; i < 10000; i++) {
            NSLog(@"%d---%@",i,[NSThread currentThread]);
      }
}];
[thread start]; //调用start方法才能执行线程的任务

//通过传入sel方法及和对象初始化子线程对象,子线程中执行当前类的run:方法传入字符串@"jack".:
NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run:) object:@"jack"];
[thread start];
thread.name = @"jack_thread";

2.通过NSThread的detachNewThread类方法在子线程中执行任务,但是无法获取或者操作此线程, 如果仅仅是要开辟子线程执行相关任务,并无需设置子线程相关属性或者名称可以使用此方法:
[NSThread detachNewThreadWithBlock:^{
        NSLog(@"%@",[NSThread currentThread]);
 }];
[NSThread detachNewThreadSelector:@selector(run:) toTarget:self withObject:@"jack"];    //子线程中执行当前类的run:方法传入字符串@"jack".

3.系统有一个基于NSObject的分类: NSThreadPerformAdditions, 在此分类中有个对NSObject类的扩展实例方法:
- (void)performSelectorInBackground:(SEL)aSelector withObject:(nullable id)arg API_AVAILABLE(macos(10.5), ios(2.0), watchos(2.0), tvos(9.0));

我们可以在需要创建子线程的地方, 例如控制器调用:

//在子线程中执行当前类的run:方法传入参数@"jack"
[self performSelectorInBackground:@selector(run:) withObject:@"jack"];

相关文章

  • iOS 多线程(一)---> NSThread

    NSThread的使用 No.1:NSThread创建线程 NSThread有三种创建方式: init方式 det...

  • iOS 多线程

    iOS使用线程的方式 pthread NSThread GCD NSOperation NSThread线程的创建...

  • NSThread的四种创建方法

    //方式1 创建线程 NSThread *thread = [[NSThread alloc] initWithT...

  • iOS 线程

    pthread NSThread 第一种创建方式 第二种创建方式 第三种创建线程的方式 NSThread线程的状态...

  • iOS基础知识 (三)

    多线程 多线程创建方式 iOS创建多线程方式主要有NSThread、NSOperation、GCD,这三种方式创建...

  • iOS 多线程之NSThread简单使用

    一、NSThread 1.创建和启动线程的3种方式 1>先创建,后启动 //创建 NSThread *thread...

  • iOS 多线程-NSThread

    1. 创建和启动线程 创建、启动线程 2. 其他创建线程方式 创建线程后自动启动线程[NSThread detac...

  • iOS 多线程开发

    一、NSThread 1、创建和启动线程 2、其他创建线程方式 上述2种创建线程方式的优缺点优点:简单快捷缺点:无...

  • 多线程

    [self performSelectorInBackground] NSThread创建线程的3中方式

  • 3.多线程基础(三)NSThead使用

    1.NSThread创建新线程: 创建线程之后是默认不执行的状态 创建线程设置线程的属性 2.NSThread创建...

网友评论

      本文标题:NSThread创建线程的方式

      本文链接:https://www.haomeiwen.com/subject/fkbwsctx.html