美文网首页
GCD创建线程数的上限

GCD创建线程数的上限

作者: cocoa | 来源:发表于2018-06-15 16:14 被阅读161次

检查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创建线程数的上限

    检查GCD线程池大小的代码 结果 推论: GCD最多只能新建64个线程,即GCD线程池大小为64。 64个线程编号...

  • 多线程(二) ---> GCD的理解与使用

    1. GCD的特点 GCD会自动利用更多的CPU内核 GCD自动管理线程的生命周期(创建线程,调度任务,销毁线程...

  • 多线程之1-GCD(DispatchQueue)

    GCD的特点 GCD会自动利用更多的CPU内核 GCD自动管理线程的生命周期(创建线程,调度任务,销毁线程等) 只...

  • iOS GCD有几种队列

    GCD:其实就是不用我们创建线程池GCD已经帮我们创建好了,他会帮我们创建线程,销毁线程决定着你的代码块将在哪个线...

  • GCD的基本使用

    GCD 多核编程、自动管理线程的生命周期(创建线程,调度任务,销毁线程) 一、GCD 的【任务】与【队列】 1.任...

  • iOS 多线程

    iOS使用线程的方式 pthread NSThread GCD NSOperation NSThread线程的创建...

  • iOS基础知识 (三)

    多线程 多线程创建方式 iOS创建多线程方式主要有NSThread、NSOperation、GCD,这三种方式创建...

  • 线程池NSOperationQueue的 setMaxConcu

    结论:setMaxConcurrentOperationCount 不能控制线程池中的线程数或线程数上限(或者说不...

  • 多线程 GCD

    1.理解GCD是什么 GCD是苹果为多核并行提出的解决方案。 GCD不需要关注线程的管理(线程的创建、调度任务、线...

  • iOS多线程开发—GCD(二)

    前言 在上一篇文章iOS多线程开发—GCD(二)中我介绍了什么是多线程,GCD与线程的关系,以及如何创建队列和简单...

网友评论

      本文标题:GCD创建线程数的上限

      本文链接:https://www.haomeiwen.com/subject/redmeftx.html