关于多线程的一些笔记📒
关于多线程的一些笔记📒
KevinEmily 发表于2年前
关于多线程的一些笔记📒
  • 发表于 2年前
  • 阅读 79
  • 收藏 6
  • 点赞 1
  • 评论 2

新睿云服务器60天免费使用,快来体验!>>>   

摘要: 多线程

1.创建定时源:

      /*1.间隔时间;2.对象;3.方法;4.自定义参数;5.是否重复*/

2.把定时源加入到当前线程的消息循环中

/*1.定时源;2.模式(1)NSDefaultRunLoopMode:拖动界面timer不运行(2)NSRunLoopCommonModes:拖动界面 TImer不受影响 */

[NSRunLoop currentRunLoop]addTimer

3.消息循环

(1)创建消息

(2)把消息放入循环,并指定消息的运行模式

(3)

4.子线程的消息循环

(1)创建子线程(2)往子线程的消息循环添加输入源(3)开启子线程的消息循环 <1> run开启之后关不了

<2>runUntilDate 指定时间间隔<3>apple推荐:通过全局布尔变量控制

特点:子线程默认不开启消息循环,主线程默认开启循环

5.GCD:Grand Central Dispatch  纯C语言 使用简单不管生命周期

定制任务:确定想做的事情

将任务添加到队列中:指定运行方式

GCD会自动将队列中的任务取出

任务的取出遵循队列的FIFO原则:先进先出,后进后出

6. (1)指定要干什么  block任务  dispatch_block_t   没有返回值  没有参数

  (2)队列 dispatch_queue_t

    (3)把任务加入到队列中dispatch_async(队列,任务)

简化写法:合起来

7.GCD线程通信:

(1)//闭包:能够调用其他方法内部的变量

(2)任务的执行方式:

//并发队列:可以让多个任务并发(同时)执行(自动开启多个线程同时执行任务)

//串行队列:让任务一个接着一个的执行(一个任务执行完毕后再执行下一个任务)

//主队列:特殊的串行队列,代表主线程  永远在主线程执行  等主线程不忙时  才调度任务去主线程运行

(3)要不要开启新的线程

//同步执行(synchroniz):在当前线程中执行,不具备开启新线程的能力

// 异步执行(Asynchronize):在新的线程中执行任务

8.串行队列同步:在当前线程有序运行

   串行队列异步:开启一个新的线程  有序执行

   并发队列异步:开启多个新线程  任务无序执行(效率最大)

   并发队列同步:没有开启新的线程  有序执行

   主队列异步:永远在主线程  不开新的线程  有序执行

   主队列同步:运行不了--死锁:主线程任务执行完,主队列才会调度主线程去执行block任务

9.延迟执行:dispatch_after  精度高  纳秒

10.队列组: 等待组里面的异步任务全部执行完成再去执行其他任务

11.一次性执行:dispatch_once  用在单例模式

12.单例模式:整个app中只有一个类的实例化对象





Emily.Wang

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 18
博文 40
码字总数 23590
评论 (2)
开源中国段子手
标题最后一个乱码是啥
KevinEmily

引用来自“开源中国osc”的评论

标题最后一个乱码是啥
是一个图 笔记的图
×
KevinEmily
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: