首页 > 编程语言 > 详细

多线程NSThread

时间:2016-07-14 15:11:38      阅读:220      评论:0      收藏:0      [点我收藏+]

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.缺点:需要自己管理线程的生命周期,线程同步。线程同步对数据的加锁会有一定的系统开销

 

多线程NSThread

原文:http://www.cnblogs.com/ai-nuonuo/p/5670289.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!