iPhone最简单的线程间通信

时间:2010-03-08 18:24:15

标签: objective-c iphone multithreading nsdictionary nsthread

我有一个带有辅助线程的iPhone应用程序来处理XML解析。在其中一些方法中,我需要引用在主线程中创建并填充的字典(用于查找,而不是修改)。

Apple的文档告诉我,全局变量可能是实现这一目标的最佳方式。我现在才确定实现的样子。在.m的顶部定义字典并在辅助线程内正常访问它们吗?

1 个答案:

答案 0 :(得分:1)

NSDictionary是线程安全的,所以它可能不是线程问题,除非你的初始化程序将全局分配为NSMutableDictionary(不是线程安全的),然后辅助线程尝试在它仍然被填充时访问它。

(如果是这种情况,初始化程序应首先将NSMutableDictionary分配到局部变量中,填充它,然后使用NSDictionary的+dictionaryWithDictionary:-initWithDictionary:将完成的本地复制到全局变量。)

或者,在初始化时你是不是可以保留全局?