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

你可能感兴趣的:(GCD创建线程数的上限)