大佬教程收集整理的这篇文章主要介绍了Swift3 GCD全局队列(global)的优先级,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Swift 3 在GCD的语法上改变了很多,更加贴近了swift的语法,而且关于队列的优先级也改变了不少。
原先的GCD只有四个优先级,high,default,low,BACkground
然而现在的GCD有六个优先级,BACkground,utility,default,userInitiated,userInteractive,unspecified
经过试验,得出了几个结论,
userInteractive的优先级最高,相当于high
BACkground的优先级最低,相当于原来的BACkground
default的优先级高于unspecified,userInitiated,utility
unspecified的优先级高于userInitiated,utility
userInitiated的优先级高于utility
@H_616_121@userInteractive>@H_616_121@default>@H_616_121@unspecified>@H_616_121@userInitiated>@H_616_121@utility>BACkground
@H_616_121@另附实验代码,若有不正确的地方欢迎指正
@H_616_121@
for i in 1...10 { DispatchQueue.global(qos: DispatchQos.QoSClass.default).async { NSLog("DispatchQos.QoSClass.default,%d",i) } DispatchQueue.global(qos: DispatchQos.QoSClass.BACkground).async { NSLog("DispatchQos.QoSClass.BACkground,i) } DispatchQueue.global(qos: DispatchQos.QoSClasS.Unspecified).async { NSLog("DispatchQos.QoSClasS.Unspecified,i) } DispatchQueue.global(qos: DispatchQos.QoSClasS.UserInitiated).async { NSLog("DispatchQos.QoSClasS.UserInitiated,i) } DispatchQueue.global(qos: DispatchQos.QoSClasS.UserInteractivE).async { NSLog("DispatchQos.QoSClasS.UserInteractive,i) } DispatchQueue.global(qos: DispatchQos.QoSClasS.Utility).async { NSLog("DispatchQos.QoSClasS.Utility,i) } }
试验数据:
2016-11-15 11:46:12.927070 GraphicsContext[2099:635166] DispatchQos.QoSClasS.UserInteractive,1 2016-11-15 11:46:12.927363 GraphicsContext[2099:635166] DispatchQos.QoSClasS.UserInteractive,2 2016-11-15 11:46:12.927407 GraphicsContext[2099:635171] DispatchQos.QoSClasS.UserInteractive,3 2016-11-15 11:46:12.927490 GraphicsContext[2099:635166] DispatchQos.QoSClasS.UserInteractive,4 2016-11-15 11:46:12.927674 GraphicsContext[2099:635166] DispatchQos.QoSClasS.UserInteractive,5 2016-11-15 11:46:12.927780 GraphicsContext[2099:635166] DispatchQos.QoSClasS.UserInteractive,6 2016-11-15 11:46:12.927868 GraphicsContext[2099:635172] DispatchQos.QoSClasS.UserInteractive,7 2016-11-15 11:46:12.927871 GraphicsContext[2099:635166] DispatchQos.QoSClasS.UserInteractive,8 2016-11-15 11:46:12.928016 GraphicsContext[2099:635172] DispatchQos.QoSClasS.UserInteractive,9 2016-11-15 11:46:12.928138 GraphicsContext[2099:635166] DispatchQos.QoSClasS.UserInteractive,10 2016-11-15 11:46:12.928719 GraphicsContext[2099:635113] DispatchQos.QoSClass.default,1 2016-11-15 11:46:12.928817 GraphicsContext[2099:635166] DispatchQos.QoSClasS.Unspecified,1 2016-11-15 11:46:12.928924 GraphicsContext[2099:635172] DispatchQos.QoSClasS.UserInitiated,1 2016-11-15 11:46:12.929190 GraphicsContext[2099:635173] DispatchQos.QoSClass.default,2 2016-11-15 11:46:12.929225 GraphicsContext[2099:635171] DispatchQos.QoSClasS.Utility,1 2016-11-15 11:46:12.929723 GraphicsContext[2099:635174] DispatchQos.QoSClasS.Unspecified,2 2016-11-15 11:46:12.930104 GraphicsContext[2099:635176] DispatchQos.QoSClasS.UserInitiated,2 2016-11-15 11:46:12.930131 GraphicsContext[2099:635175] DispatchQos.QoSClasS.Utility,2 2016-11-15 11:46:12.930641 GraphicsContext[2099:635177] DispatchQos.QoSClass.default,3 2016-11-15 11:46:12.931705 GraphicsContext[2099:635179] DispatchQos.QoSClasS.Unspecified,3 2016-11-15 11:46:12.931857 GraphicsContext[2099:635180] DispatchQos.QoSClasS.UserInitiated,3 2016-11-15 11:46:12.932196 GraphicsContext[2099:635181] DispatchQos.QoSClass.default,4 2016-11-15 11:46:12.932277 GraphicsContext[2099:635178] DispatchQos.QoSClasS.Utility,3 2016-11-15 11:46:12.932779 GraphicsContext[2099:635183] DispatchQos.QoSClasS.Unspecified,4 2016-11-15 11:46:12.932889 GraphicsContext[2099:635182] DispatchQos.QoSClasS.UserInitiated,4 2016-11-15 11:46:12.933215 GraphicsContext[2099:635185] DispatchQos.QoSClass.default,5 2016-11-15 11:46:12.933027 GraphicsContext[2099:635184] DispatchQos.QoSClasS.Utility,4 2016-11-15 11:46:12.933423 GraphicsContext[2099:635113] DispatchQos.QoSClasS.Unspecified,5 2016-11-15 11:46:12.933586 GraphicsContext[2099:635166] DispatchQos.QoSClasS.UserInitiated,5 2016-11-15 11:46:12.933709 GraphicsContext[2099:635172] DispatchQos.QoSClass.default,6 2016-11-15 11:46:12.933831 GraphicsContext[2099:635173] DispatchQos.QoSClasS.Unspecified,6 2016-11-15 11:46:12.933976 GraphicsContext[2099:635174] DispatchQos.QoSClasS.UserInitiated,6 2016-11-15 11:46:12.934095 GraphicsContext[2099:635176] DispatchQos.QoSClass.default,7 2016-11-15 11:46:12.934242 GraphicsContext[2099:635177] DispatchQos.QoSClasS.Unspecified,7 2016-11-15 11:46:12.934356 GraphicsContext[2099:635179] DispatchQos.QoSClasS.UserInitiated,7 2016-11-15 11:46:12.934503 GraphicsContext[2099:635180] DispatchQos.QoSClass.default,8 2016-11-15 11:46:12.934611 GraphicsContext[2099:635171] DispatchQos.QoSClasS.Utility,5 2016-11-15 11:46:12.934701 GraphicsContext[2099:635175] DispatchQos.QoSClasS.Utility,6 2016-11-15 11:46:12.937166 GraphicsContext[2099:635186] DispatchQos.QoSClasS.Unspecified,8 2016-11-15 11:46:12.937476 GraphicsContext[2099:635188] DispatchQos.QoSClasS.UserInitiated,8 2016-11-15 11:46:12.937521 GraphicsContext[2099:635187] DispatchQos.QoSClasS.Utility,7 2016-11-15 11:46:12.937682 GraphicsContext[2099:635181] DispatchQos.QoSClass.default,9 2016-11-15 11:46:12.937868 GraphicsContext[2099:635183] DispatchQos.QoSClasS.Unspecified,9 2016-11-15 11:46:12.937987 GraphicsContext[2099:635182] DispatchQos.QoSClasS.UserInitiated,9 2016-11-15 11:46:12.938110 GraphicsContext[2099:635185] DispatchQos.QoSClass.default,10 2016-11-15 11:46:12.938262 GraphicsContext[2099:635113] DispatchQos.QoSClasS.Unspecified,10 2016-11-15 11:46:12.938381 GraphicsContext[2099:635166] DispatchQos.QoSClasS.UserInitiated,10 2016-11-15 11:46:12.938692 GraphicsContext[2099:635178] DispatchQos.QoSClasS.Utility,8 2016-11-15 11:46:12.938837 GraphicsContext[2099:635184] DispatchQos.QoSClasS.Utility,9 2016-11-15 11:46:12.941483 GraphicsContext[2099:635174] DispatchQos.QoSClasS.Utility,10 2016-11-15 11:46:12.949181 GraphicsContext[2099:635115] DispatchQos.QoSClass.BACkground,1 2016-11-15 11:46:12.949734 GraphicsContext[2099:635115] DispatchQos.QoSClass.BACkground,2 2016-11-15 11:46:12.950257 GraphicsContext[2099:635115] DispatchQos.QoSClass.BACkground,3 2016-11-15 11:46:12.950775 GraphicsContext[2099:635115] DispatchQos.QoSClass.BACkground,4 2016-11-15 11:46:12.951348 GraphicsContext[2099:635115] DispatchQos.QoSClass.BACkground,5 2016-11-15 11:46:12.952512 GraphicsContext[2099:635115] DispatchQos.QoSClass.BACkground,6 2016-11-15 11:46:12.953108 GraphicsContext[2099:635115] DispatchQos.QoSClass.BACkground,7 2016-11-15 11:46:12.953659 GraphicsContext[2099:635115] DispatchQos.QoSClass.BACkground,8 2016-11-15 11:46:12.954176 GraphicsContext[2099:635115] DispatchQos.QoSClass.BACkground,9 2016-11-15 11:46:12.954890 GraphicsContext[2099:635115] DispatchQos.QoSClass.BACkground,10
以上是大佬教程为你收集整理的Swift3 GCD全局队列(global)的优先级全部内容,希望文章能够帮你解决Swift3 GCD全局队列(global)的优先级所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。