iOS开发多线程创建及线程间通信



1.NSThread

(1)

NSThread *thread1 = [[NSThread alloc]initWithTarget:self selector:@selector(threadFunc) object:nil];
[thread1 start];//开启线程,开始运行threadFunc方法
    
    //设置线程优先级,iOS8之前是这样设置的,现已被废弃
    //[thread1 setThreadPriority:4];
    //新的优先级设置方式:
    [thread1 setQualityOfService:NSQualityOfServiceDefault];//设置优先级为默认
//    NSQualityOfServiceUserInteractive 最高优先级,用于用户交互事件
//    NSQualityOfServiceUserInitiated 次高优先级,用于用户需马上执行的事件
//    NSQualityOfServiceUtility 普通优先级,用于普通任务
//    NSQualityOfServiceBackground 最低优先级,用于最不重要的任务
//    NSQualityOfServiceDefault 默认优先级,线程不设置优先级时默认使用这个


(2)

[NSThread detachNewThreadSelector:@selector(threadFunc) toTarget:self withObject:nil];


(3)

[self performSelectorInBackground:@selector(threadFunc) withObject:nil];


(2)、(3)两种方式创建线程,创建后自动启动,快捷方便,缺点是:不能对线程做更详细的设置。

-(void)threadFunc{
    
//    [NSThread currentThread];获取当前线程
//    [NSThread mainThread];获取主线程
    
}

2.线程间通信

(1)在当前线程

[self performSelector:];
[self performSelector: withObject:];
[self performSelector: withObject: afterDelay:];


(2) 在主线程上操作

[self performSelectorOnMainThread: withObject: waitUntilDone:];


(3)指定其它线程操作

[self performSelector: onThread: withObject: waitUntilDone:];






  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值