作品分享
问答交流
发现
任务
客服工单
单例总结: 1.线程安全 2.任务只会被实验一次 3.通过一个状态值来包管任务是否被实验过
为什么苹果计划栅栏函数栅不住全局并发队列? 由于我们体系也会利用全局并发队列,制止造成体系任务被壅闭。
栅栏函数总结: 1.栅栏函数只针对非全局队列; 2.栅栏函数不能栅住全局队列,由于体系也在用它,防止壅闭住体系任务; 3.栅栏函数必要等候当前队列前面的任务实验完,再去实验栅栏任务,末了唤醒实验栅栏任务反面的任务
调理组总结: 1.dispatch_group_enter与dispatch_group_leave必须成对利用; 2.dispatch_group_leave次数多于dispatch_group_enter会导致瓦解; 3.调理组底层是通过修改调理组的状态值的增(enter)减(leave),不断地监听这个状态值是否到达平衡(便是0),一旦平衡则去实验dispatch_group_notify里的任务。
信号量总结: 1.dispatch_semaphore_wait 信号量等候,内部是对并发数做自减1操纵,假如小于0,会实验_dispatch_semaphore_wait_slow然后调用_dispatch_sema4_wait是一个do-while,直到满足条件竣事循环。 2.dispatch_semaphore_signal 信号量开释 ,内部是对并发数做自加1操纵,直到大于0时,为可操纵。 3.保持线程同步,将异步实验任务转换为同步实验任务。 4.包管线程安全,为线程加锁,相当于自旋锁。
举报
本版积分规则 回帖后跳转到最后一页
Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )
GMT+8, 2025-8-24 05:29, Processed in 0.153415 second(s), 35 queries.© 2003-2025 cbk Team.