Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Swift3 GCD全局队列(global)的优先级大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

Swift 3 在GCD的语法上改变了很多,更加贴近了swift的语法,而且关于队列的优先级也改变了不少。 原先的GCD只有四个优先级,high,default,low,BACkground 然而现在的GCD有六个优先级,BACkground,utility,default,userInitiated,userInteractive,unspecified 经过试验,得出了几个结论, userIn

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,请注明来意。