访问相同字典的不同线程(仅供读取)

时间:2011-10-06 19:30:49

标签: python multithreading dictionary thread-safety conflict

我有一个函数(例如myFunc),它有一个开始和结束日期&迭代它并访问一些字典来处理这段时间的数据。我希望使用线程来并行化这段代码。

我的main()函数从一堆文件读取数据&将它们存储在词典中。每当我打电话给myFunc时,我都会通过这些词典和一个开始&结束日期。当我使用多个线程调用myFunc并传递相同的字典时,是否会发生冲突?这些词典仅用于只读目的。

myFunc创建了许多字典,然后将其写入另一个文件。这个输出文件对于每个线程都会有所不同,但是因为在所有线程中,字典的名称相同,是否会发生冲突?从理论上讲,我理解线程的概念意味着只要这些词典不是全球性的,就不应该存在冲突。但是,由于它是我第一次尝试穿线,想要一些确认。

由于

1 个答案:

答案 0 :(得分:6)

使用线程,不,你不会遇到问题。你也不会实现并行性。 Python中的全局解释器锁(GIL)只允许单个线程随时处理。如果您想要真正的并行处理,则需要查看多处理模块。它能够在机器上实际利用多个处理器。