线程间的通信

一、什么是线程间的通信?

  • 在一个线程中,线程往往不是独立存在的,多个线程间需要经常进行通信
  • 举个比较常见的例子:在子线程下载图片,下载完毕之后到主线程显示图片。
  • 具体体现:
    • 一个线程将数据传递给另外一个线程。
    • 在一个线程中完成了指定的任务之后,再转到另外一个线程中继续执行任务
  • 线程的注意点:
    • 不能够开启太多的线程(1~3条就行了,不要超过5条)
    • 在主线程(UI线程)显示/刷新UI界面,处理UI控件的事件(点击、触摸、拖拽等
    • 在子线程(后台/异步线程)执行耗时操作(所有的网络访问都是耗时操作)
  • 常用的实现方案:


    iOS中多线程的实际方案.png
  • GCD代码示范:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
   // 执行耗时的异步操作...
   dispatch_async(dispatch_get_main_queue(), ^{
       // 回到主线程,执行UI刷新操作
   });
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容