相关疑难解决方法(0)

Grand Central Dispatch中线程限制的解决方法?

使用Grand Central Dispatch,可以轻松地在非主线程上执行耗时的任务,避免阻止主要攻击并保持UI响应.只需dispatch_async在全局并发队列上使用并执行任务即可.

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    // code
});
Run Code Online (Sandbox Code Playgroud)

然而,听起来好得令人难以置信,因为这个通常有它们的缺点.在我们的iOS应用程序项目中使用了很多之后,最近我们发现它有64个线程限制.一旦我们达到限制,应用程序将冻结/挂起.通过暂停应用程序与Xcode,我们可以看到主线程由semaphore_wait_trap.

在网上搜索确认其他人也遇到了这个问题,但到目前为止还没有找到解决方案.

达到调度线程硬限制:64(同步操作中阻塞的调度线程太多)

另一个问题计算器证实了这一问题时使用发生dispatch_syncdispatch_barrier_async太.

问题:
由于Grand Central Dispatch有64个线程限制,有没有解决方法?

提前致谢!

objective-c grand-central-dispatch ios

32
推荐指数
1
解决办法
9311
查看次数

标签 统计

grand-central-dispatch ×1

ios ×1

objective-c ×1