grand-central-dispatch相关内容

大中央调度vs NSThreads?

我搜索了各种来源,但不真正理解使用 NSThreads 和GCD之间的区别。我对OS X平台完全陌生,所以我可能完全误解了这一点。 根据我在线阅读,GCD似乎做了与基本线程完全相同的事情(POSIX, NSThreads 等),同时添加更多的技术术语(“块”)。它似乎只是过度复杂的基本线程创建系统(创建线程,运行功能)。 GCD究竟是什么和它为什么比传统线程更好?什么时候应该使用传统线 ..

如何计划块在下一个运行循环迭代中运行?

我想在下一个运行循环迭代中执行块。它不是那么重要,它是否在下一个运行循环的开始或结束执行,只是执行被推迟到当前运行循环中的所有代码已完成执行。 我知道以下不工作,因为它与主运行循环交织,所以我的代码可能在下一个运行循环执行,但它可能不会。 dispatch_async(dispatch_get_main_queue(),^ { // my code }); 以下 ..
发布时间:2016-12-06 16:19:35 移动开发

在Grand Central Dispatch中使用dispatch_sync

任何人都可以用真正明确的用例来解释 dispatch_sync 在 GCD 中的目的是什么?我不明白在哪里,为什么我必须使用这个。 谢谢! 解决方案 当你想要执行一个块并等待结果时,你使用它。 一个例子是你使用的模式一个分派队列而不是锁同步。例如,假设您有一个共享的NSMutableArray a ,访问由调度队列 q 调解。后台线程可能会附加到数组(async),而你的前台线 ..
发布时间:2016-12-06 15:43:46 移动开发

你需要在GCD的块中创建一个NSAutoreleasePool吗?

通常,如果您生成一个后台线程或在NSOperationQueue上运行NSOperation,您需要为该线程或操作创建一个NSAutoreleasePool,因为默认情况下不存在。 相同的规则是否适用于放置在Grand Central Dispatch队列中的块,并且将在非主线程上运行?也就是说,你需要在每个块中创建一个NSAutoreleasePool,你分派到主队列以外的任何东西? ..
发布时间:2016-12-06 15:19:05 移动开发

C ++ 11应用程序使用dispatch_apply不能在Mac OS Sierra下工作

我有一个用C ++ 11编写的完全功能的代码库,它使用了Grand Central Dispatch并行处理,特别是 dispatch_apply 为一些琐碎的游戏计算做了基本的并行循环。 自从升级到Sierra之后,该代码仍然运行,但每个块都是以串行方式运行的, cout 语句表明它们是以串行顺序执行的, CPU使用情况图表不显示并行处理。 队列定义为: workQueue ..
发布时间:2016-11-06 01:43:37 C/C++

如何从dispatch_apply(GCD)循环写入数组?

我已经编写了代码来使用Runge-Kutta方法来计算大量耦合主方程的动力学。代码包含大量的for循环,其中每个步骤是独立的。我打算使用大中央调度来加快程序。我根据我在 http:// www。 .macresearch.org / cocoa-scientists-xxxi-all-aboard-grand-central 。我的代码和Macresearch上的示例在我的机器上编译(MacOSX ..
发布时间:2016-10-19 20:48:14 C/C++开发

C ++ 11随机数发生器的线程安全性

在C ++ 11中有一堆新的随机数生成器引擎和分布函数。他们线程安全吗?如果你在多个线程之间共享一个随机分布和引擎,它是安全的,你还会收到随机数吗?我正在寻找的情况是,像 void foo(){ std :: mt19937_64 engine(static_cast(system_clock :: to_time_t(system_clock :: now())) ..
发布时间:2016-10-13 11:02:13 C/C++开发

中央策略打开多个文件

我在使用大中央调度队列(1)打开一个文件,并在“队列1”计算一个OpenSSL的DSA散列的工作实现;(2)写出的哈希为在以后的验证新的“边车”的文件“队列2”。 我想在同一时间打开多个文件,但基于某种逻辑不“呛”操作系统由具有打开的文件和数百超过了硬盘的持续输出。图片浏览应用,如iPhoto或Aperture似乎打开多个文件,并显示他们,所以我假定这是可以做到。 我假设最大的限制将是磁盘I ..
发布时间:2016-08-18 22:32:00 移动开发

上传背景图片模式

我有我想用来上传图片到服务器的Web服务,通​​过wsdl2objc生成的Web服务代理类,它使用的NSOperation进行SOAP调用。在上传过程中我preSS home键和应用程序进入后台模式,会在这种情况下,什么假设?将上载过程终止?或进程将反正完成。 解决方案 默认情况下,操作系统将冻结您的应用程序在后台运行。当发生这种情况时,远程服务器可能会关闭一段时间后连接,因为您的应用程序 ..
发布时间:2016-08-01 10:10:32 移动开发

究竟什么是GCD并在是否应该使用吗?

我认为GCD是待办事项异步事件,但具体而言,我不知道事件/其中GCD进来有用的,除了明显的Web请求的是什么类型的。 你能解释一下什么是GCD以及它应该/不应该使用? 解决方案 我强烈建议你阅读苹果的并发编程指南中被称为“调度队列”一章。这是一个很好的文件,并清楚地描述了与标准的多线程编程的差异。 该读数(不会带你超过10分钟阅读,多挺消化当然!)比任何其他的话,我可以把这里相当好! ..
发布时间:2016-07-21 11:14:40 移动开发

如何并行,没有击中全球GCD限制多(100+)的任务?

问题 在延迟加载在后台100+图标的列表,我打的GCD线程限制(64个线程),这将导致我的应用程序使用 semaphore_wait_trap 在主线程。我想重组这种情况的发生我的线程code至prevent,同时还装载异步prevent UI阻塞的图标。 上下文 我的应用程序加载与它SVG图标的屏幕。从10-200量平均不同。图标获得通过使用本地SVG图像或远程SVG图像(如果它有一个自定 ..

为什么是异步的网络测试很难在Objective-C /斯威夫特?

所以我更多地了解如何测试异步code,当我遇到以下内容: 只要给定的测试方法完成,XCTest方法会考虑 一个测试来完成,并进入下一个测试。这意味着,任何 从previous测试异步code将继续运行,而 接下来的测试运行。网络code是通常是异步的, 因为你不希望阻止主线程在执行 网络获取。也就是说,加上一个事实,即测试结束时, 测试方法完成,可以使它很难测试组网code“。 ..

iOS版:dispatch_async和UIImageWriteToSavedPhotosAlbum

刚学如何分配任务的线程中,或异步分派。我明白了“触及”的任何操作视图,必须在主线程中完成的。什么: UIImageWriteToSavedPhotosAlbum ? 我会假设这可能​​会在后台线程来完成,但是是我错了? 此外,如果它应该在后台线程完成,是否有这两个调用之间的差以下时,为一个保存一个UIImage和其他从视图可以节省一个UIImage? UIImageWriteToSavedP ..
发布时间:2016-07-21 10:23:52 移动开发