博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NSThread创建方式
阅读量:5050 次
发布时间:2019-06-12

本文共 949 字,大约阅读时间需要 3 分钟。

三种创建方式:

1.通过alloc init 方式创建线程并执行

NSThread *thread1 = [[NSThread alloc]initWithTarget:self selector:@selector(runThread) object:nil];

[thread1 setName:@"Namethread1"];//获取线程name [NSThread currentThread].name;可用于判断线程问题

[thread1 setThreadPriority:0.5];//线程优先级,越大优先级越高

[thread1 start];

- (void)runThread{//子线程

for (int i = 0,i<10,i++){

NSLog(@"%d",i);

sleep(1);

if(i=10){//如果i为10的话,回到主线程

[self performSelectorOnMainThread:@selector(runMainThread) withObject:nil waitUntilDone:YES];

}

}

}

- (void)runMainThread{

NSLog(@"回到主线程");

}

2.通过 detachNewThreadSelector 创建线程并执行

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

3.通过 performSelectorInBackground 创建线程并执行

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

加锁:

1.@synchronized(self){

}

2.NSCondiction *condition = [[NSCondiction alloc]init];

[condition lock];

[condition unlock];

3.nslock

 

转载于:https://www.cnblogs.com/liuting-1204/p/6573677.html

你可能感兴趣的文章
[游戏学习26] MFC 时间函数 画图形
查看>>
Java构建器(多个构造器参数)
查看>>
个人绩效与团队绩效
查看>>
快餐英语名称
查看>>
Ubuntu PPA软件源
查看>>
Window 2003 IIS + MySQL + PHP + Zend 环境配置
查看>>
Mysql集合笔记
查看>>
《tr命令》-linux命令五分钟系列之六
查看>>
HTTPS与SSL数字证书的必要性
查看>>
react之项目目录
查看>>
wamp自定义网站根目录及多站点配置
查看>>
一级和二级的列表在一起的时候。获取一级放在轮播里面展示。10个一组轮播...
查看>>
GPT转MBR完整图文教程
查看>>
转载:《TypeScript 中文入门教程》 6、命名空间
查看>>
友情链接
查看>>
JavaScript测试工具
查看>>
QC学习三:Excel数据导入导出QC操作流程
查看>>
Combination Sum II
查看>>
对象数组的练习
查看>>
Speeding up AngularJS apps with simple optimizations
查看>>