博客> NSThread的用法
NSThread的用法
2017-10-20 00:22 评论:0 阅读:43 进击的可乐SAMA


一、NSThread一些基本的方法


//获得主线程
[NSThread mainThread];

//判断当前方法是否为主线程
[NSThread isMainThread];

//获取当前线程
[NSThread currentThread];

//让线程延迟N秒执行(阻塞N秒)
[NSThread sleepForTimeInterval:秒数];

//让线程延迟到某个时间点
[NSThread sleepUntilDate:date对象];

//强制让线程死亡
[NSThread exit];


二、创建线程的方法
1.第一种方法


//创建线程对象
NSThread * thread = [[NSThread alloc] initWithTarget:self selector:@selector(方法名) object:参数];

//线程的名字
thread.name = 线程名(字符串);

//判断线程是否为主线程
[thread isMainThread];

//启动线程
[thread start];


2.第二种方法


//创建好就会调用线程索要运行的方法(简单的创建线程方法)
[NSThread detachNewThreadSelector:@selector(方法名) toTarget:self withObject:参数];


3.第三种方法


//隐式创建
[self performSelectoreInBackground:@selector(方法名) withObject:参数];


三、线程的安全问题(线程锁)
将操作写在线程锁中可以使线程一个一个操作,不会同时操作


//线程锁写法(将操作写到线程锁里)
@synchronized(self) {

    //操作写在此处

}


四、线程之间的交互(回到主线程)


//第一种方法
[self performSelectorOnMainThread:@selector(方法名) withObject:参数 waitUntilDone:YES];

//第二种方法
[self performSelector:@selecor(方法名) onThread:线程 withObject:参数 waitUntilDone:YES];
收藏
0
sina weixin mail 回到顶部