NSCondition

NSCondition 是一种特殊类型的锁,通过它可以实现不同线程的调度。一个线程被某一个条件所阻塞,直到另一个线程满足该条件从而发送信号给该线程使得该线程可以正确的执行。比如说,你可以开启一个线程下载图片,一个线程处理图片。这样的话,需要处理图片的线程由于没有图片会阻塞,当下载线程下载完成之后,则满足了需要处理图片的线程的需求,这样可以给定一个信号,让处理图片的线程恢复运行。

- (void)download {     
 [self.condition lock];     //TODO: 下载文件代码     
 if (donloadFinish) { // 下载结束后,给另一个线程发送信号,唤起另一个处理程序         
  [self.condition signal];         
  [self.condition unlock];     
 } 
} 

- (void)doStuffWithDownloadPicture {     
 [self.condition lock];     
 while (!donloadFinish) {         
  [self.condition wait];     
 }     //TODO: 处理图片代码     
 [self.condition unlock]; 
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容