多线程 ——NSThread
2015-11-20 22:06
274 查看
先看一下线程的状态
学习多线程的目的:就将耗时操作放到子线程中去执行。
[NSThread currentThread] 获得当前方法执行的线程对象
通过number来判断当前线程是主线程还是子线程
提示:不要纠结这个number的值是多少
只要number == 1,则代表是主线程
number != 1,则是子线程,这个值是由CPU决定,
创建线程方法一:
创建线程方法二:
创建线程方法三:
学习多线程的目的:就将耗时操作放到子线程中去执行。
[NSThread currentThread] 获得当前方法执行的线程对象
通过number来判断当前线程是主线程还是子线程
提示:不要纠结这个number的值是多少
只要number == 1,则代表是主线程
number != 1,则是子线程,这个值是由CPU决定,
创建线程方法一:
- (void)threadDemo1 { // 创建线程 -- 仅仅是在内存中创建了一个线程对象,并没有开始执行指定方法 NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(longOperation:) object:@"alloc"]; // 开始执行 [thread start]; } - (void)longOperation:(id)param{ NSLog(@"%@---%@",param,[NSThread currentThread]); }
创建线程方法二:
- (void)threadDemo2 { // 创建线程 // 默认自动开启 [NSThread detachNewThreadSelector:@selector(longOperation:) toTarget:self withObject:@"detach"]; }
创建线程方法三:
- (void)threadDemo3{ // 隐式在后台开启线程执行指定的方法。 // 任何 NSObject对象都可以调用该方法,在后台线程中执行对应的方法 [self performSelectorInBackground:@selector(longOperation:) withObject:@"performSelector"]; }
相关文章推荐
- C#线程间不能调用剪切板的解决方法
- C#线程同步的三类情景分析
- C#获取进程或线程相关信息的方法
- C#停止线程的方法
- C#子线程更新UI控件的方法实例总结
- C#线程队列用法实例分析
- C++使用CriticalSection实现线程同步实例
- 基于C++实现的线程休眠代码
- VB读取线程、句柄及写入内存的API代码实例
- C#网络编程基础之进程和线程详解
- C#通过Semaphore类控制线程队列的方法
- C#多线程处理多个队列数据的方法
- C#实现线程安全的简易日志记录方法
- C#中线程同步对象的方法分析
- ASP.NET线程相关配置
- 浅析linux环境下一个进程最多能有多少个线程
- 再谈JavaScript线程
- C#实现终止正在执行的线程
- Java线程编程中的主线程讲解
- 解析Java线程同步锁的选择方法