-1

我正在从 Objective-C 中的几个不同块将对象添加到同一个 NSMutableDictionary。这些块都是其他进程的回调函数;也就是说,当原始过程完成时,它们将在未来某个未确定的时间点被调用。

我担心 NSMutableDictionary 可能同时被两个不同的块操作。我知道如果这两个块在不同的线程上运行,那么这是一个合理的问题。我只想知道块是否总是在不同的线程上运行,每当我使用块时,这都是一个问题。

4

1 回答 1

3

不,块并不总是在不同的线程上运行。这完全取决于块是什么以及如何安排它的执行。您是否自己执行它,将其添加到操作队列中,使用 GCD 队列。该块可以在任何线程上运行,包括主线程。您可以控制它是在主线程还是后台线程上运行。

线程安全

于 2013-08-29T17:20:35.877 回答