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

use*_*815 4 python multithreading dictionary conflict thread-safety

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

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

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

谢谢

g.d*_*d.c 6

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