博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程NSThread
阅读量:4331 次
发布时间:2019-06-06

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

Thread :是三种方法里面相对轻量级的,但需要管理线程的生命周期、同步、加锁问题,这会导致一定的性能开销

一:创建线程

方法1:

// 初始化线程  

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

// 设置线程的优先级(0.0 - 1.0,1.0最高级)  

thread.threadPriority = 1;

// 开启线程  

[thread start];  

方法2:

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

//用静态方法创建线程 调用完毕后,会马上创建并开启新线程

二、获取当前线程

 NSThread *current = [NSThread currentThread];  

三、获取主线程

 NSThread *main = [NSThread mainThread];  

四、暂停当前线程

// 暂停2s  

[NSThread sleepForTimeInterval:2];  

// 或者  

NSDate *date = [NSDate dateWithTimeInterval:2 sinceDate:[NSDate date]];  

[NSThread sleepUntilDate:date]; 

五:多线程安全NSLock

多线程内使用加锁操作使得线程更安全

NSLock *lock = [[NSLock alloc] init];

    [lock lock];

    //执行加锁任务

    [lock unlock];

六:优缺点:

1.优点:NSThread比其他两种多线程方案较轻量级,更直观地控制线程对象

2.缺点:需要自己管理线程的生命周期,线程同步。线程同步对数据的加锁会有一定的系统开销

 

转载于:https://www.cnblogs.com/ai-nuonuo/p/5670289.html

你可能感兴趣的文章
百度移动搜索主要有如下几类结果构成
查看>>
Python爬虫面试题170道:2019版【1】
查看>>
JavaBean规范
查看>>
第四阶段 15_Linux tomcat安装与配置
查看>>
NAS 创建大文件
查看>>
学习笔记-模块之xml文件处理
查看>>
接口测试用例
查看>>
面试:用 Java 实现一个 Singleton 模式
查看>>
Sybase IQ导出文件的几种方式
查看>>
案例:手动输入一个字符串,打散放进一个列表,小写字母反序 大写字母保持不变...
查看>>
linux 系统下 tar 的压缩与解压缩命令
查看>>
阿里负载均衡,配置中间证书问题(在starcom申请免费DV ssl)
查看>>
转:How to force a wordbreaker to be used in Sharepoint Search
查看>>
MySQL存储过程定时任务
查看>>
Python中and(逻辑与)计算法则
查看>>
POJ 3267 The Cow Lexicon(动态规划)
查看>>
设计原理+设计模式
查看>>
音视频处理
查看>>
tomcat 7服务器跨域问题解决
查看>>
前台实现ajax 需注意的地方
查看>>