GCD创建线程数的上限

检查GCD线程池大小的代码

for (int i=1; i<100; i++) {
            //循环向全局队列加入异步执行的任务
            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                //因为GCD线程池内无可用线程(均被阻塞),所以任务会被加入新建的线程中执行
                NSLog(@"%d,%@",i,[NSThread currentThread]);//打印循环次数和当前线程
                [NSThread sleepForTimeInterval:100000];//阻塞当前线程
            });
        }

结果

Screen Shot 2018-06-15 at 15.53.44.png

推论:

  • GCD最多只能新建64个线程,即GCD线程池大小为64。
  • 64个线程编号为3至66,编号1为主线程、编号2为一个随机的非GCD线程。

信息源:https://stackoverflow.com/questions/7213845/number-of-threads-created-by-gcd

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,789评论 8 265
  • 前言 gcd用起来很方便,虽说是由系统去控制线程的创建,销毁,调配。我们无需操心。但是滥用的话也会引起线程数量过多...
    微微笑的蜗牛阅读 3,425评论 0 51
  • 讲多线程这个话题,就免不了先了解多线程相关的技术概念。本文涉及到的技术概念有CPU、进程、线程、同异步、队列等概念...
    jackyshan阅读 3,841评论 2 26
  • 15世纪末,由欧洲通往美洲的大西洋航道被哥伦布开辟,欧洲人纷纷远涉重洋来到美洲。17世纪初,首批英国移民到达北美,...
    CharityYeh阅读 430评论 0 1
  • 大学毕业2年,说大不大,说小不小,年龄走到一个尴尬的分界点。做着勉强为生的工作,说不上喜欢也说不上讨厌。不想伸手往...
    若水浮生阅读 479评论 0 0