检查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];//阻塞当前线程
});
}
结果
推论:
- GCD最多只能新建64个线程,即GCD线程池大小为64。
- 64个线程编号为3至66,编号1为主线程、编号2为一个随机的非GCD线程。
信息源:https://stackoverflow.com/questions/7213845/number-of-threads-created-by-gcd