NSThread创建方式

三种创建方式:

1.通过alloc init 方式创建线程并执行

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

[thread1 setName:@"Namethread1"];//获取线程name [NSThread currentThread].name;可用于判断线程问题

[thread1 setThreadPriority:0.5];//线程优先级,越大优先级越高

[thread1 start];

- (void)runThread{//子线程

for (int i = 0,i<10,i++){

NSLog(@"%d",i);

sleep(1);

if(i=10){//如果i为10的话,回到主线程

[self performSelectorOnMainThread:@selector(runMainThread) withObject:nil waitUntilDone:YES];

}

}

}

- (void)runMainThread{

NSLog(@"回到主线程");

}

2.通过 detachNewThreadSelector 创建线程并执行

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

3.通过 performSelectorInBackground 创建线程并执行

[self performSelectorInBackground:@selector(runThread) withObject:nil];

加锁:

1.@synchronized(self){

}

2.NSCondiction *condition = [[NSCondiction alloc]init];

[condition lock];

[condition unlock];

3.nslock

原文地址:https://www.cnblogs.com/liuting-1204/p/6573677.html