ios开发开启多线程的几种基本方法

// 1.第一种开启新的线程调用mutableThread
NSThread *t = [[NSThread alloc] initWithTarget:self selector:@selector(mutableThread) object:nil];
[t start]; // 需手动开启

// 2.第二种开启新的线程调用mutableThread
[NSThread detachNewThreadSelector:@selector(mutableThread) toTarget:self withObject:nil];

// 3.第三种开启新的线程调用mutableThread
[self performSelectorInBackground:@selector(mutableThread) withObject:nil];

//  4.block语法启动一个线程
NSOperationQueue *threadQueue = [[NSOperationQueue alloc] init];
[threadQueue addOperationWithBlock:^(void){
          NSThread *t = [NSThread currentThread];
          if (![t isMainThread]){
              NSLog(@"是多线程”);
           }
}];

// 5.NSOperation开启一个线程
NSOperationQueue *threadQueue = [[NSOperationQueue alloc] init];
NSInvocationOperation *op =[ [NSInvocationOperation alloc] initWithTarget:self selector:@selector(mutableThread) object:nil];
[threadQueue addOperation:op];

// 在主线程上调用reloadData 方法 (从子线程跳到主线程)
[self performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:YES];
PS:不要在子线程reloadData,要跳到主线程

// GCD:Grand central dispatch (C语言的)
dispatch_queue_t queue = dispatch_queue_create(“test”, NULL);
dispatch_async(queue, ^{
    for (int i = 0; i < 50; i++)
    {
        NSLog(@“多线程:%d”, i);
    }
// 回到主线程
dispatch_sync(dispatch_get_main_queue, ^{


})
})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值