当前位置: 移动技术网 > IT编程>移动开发>IOS > ios多线程之NSThread使用技巧

ios多线程之NSThread使用技巧

2018年09月30日  | 移动技术网IT编程  | 我要评论

色界论坛地址,小爸爸里文章开的车,朝阳区人事考试中心

一个nsthread对象就代表着一条线程

创建启动线程

 //创建线程
 /*
  第一个参数:目标对象
  第二个参数:选择器,线程启动要调用哪个方法
  第三个参数:前面方法要接收的参数(最多只能接收一个参数,没有则传nil)
  */
 nsthread *thread = [[nsthread alloc]initwithtarget:self selector:@selector(run:) object:@"wendingding"];
  //启动线程
 [thread start];
 //线程只要启动,就会在线程thread中执行self的run方法

其他两种创建线程的方法:

//第二种创建线程的方式:分离出一条子线程
//特点:自动启动线程,无法对线程进行更详细的设置
 /*
  第一个参数:线程启动调用的方法
  第二个参数:目标对象
  第三个参数:传递给调用方法的参数
  */
 [nsthread detachnewthreadselector:@selector(run:) totarget:self withobject:@"我是分离出来的子线程"];

//第三种创建线程的方式:后台线程
//特点:自动启动县城,无法进行更详细设置
[self performselectorinbackground:@selector(run:) withobject:@"我是后台线程"];

设置线程的属性

 //设置线程的名称
 thread.name = @"线程a";

 //设置线程的优先级,注意线程优先级的取值范围为0.0~1.0之间,1.0表示线程的优先级最高,如果不设置该值,那么理想状态下默认为0.5
 thread.threadpriority = 1.0;

线程的状态

//线程的各种状态:新建-就绪-运行-阻塞-死亡
//常用的控制线程状态的方法
[nsthread exit];//退出当前线程
[nsthread sleepfortimeinterval:2.0];//阻塞线程
[nsthread sleepuntildate:[nsdate datewithtimeintervalsincenow:2.0]];//阻塞线程
//注意:线程死了不能复生。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网