首页投稿(暂停使用,暂停投稿)

NSThread

2017-07-20  本文已影响11人  iOSser

引言: 之前介绍过 线程的概念pthread的使用

线程执行的流程图

线程执行的流程图

图解:

1.新建线程 调用start方法后线程进入就绪状态 此时线程对象在可调度线程池

2.CPU会在线程之间调度

当线程执行完任务或异常时线程会自动销毁

当调用调用sleep方法或等待同步锁时

3.此时线程会进入阻塞状态
如果调用sleep方法或等待同步锁的时间到时 线程就会被CPU调度

线程的属性

NSThread创建线程的方法

  NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(threadTest) object:nil];
    
  [thread start];
 [NSThread detachNewThreadSelector:@selector(threadTest) toTarget:self withObject:nil];

 [self performSelectorInBackground:@selector(threadTest) withObject:nil];
- (void)threadTest {
    NSLog(@"threadTest所在线程 -- %@", [NSThread currentThread]);
}
- (void)threadTest:(NSString *)name {
    NSLog(@"threadTest -- %@", name);
}

多线程操作共享资源

@synchronized(锁对象) {需要锁定的代码}

demo学习资源

上一篇下一篇

猜你喜欢

热点阅读