我希望允许不同的线程通过仅获取这些元素而不是整个对象的锁来对 Value 的不同元素进行更改。
例如:考虑字典 -
D = {1:[时间、速度、距离],2:[时间1,速度1,距离1], 3:[时间2,速度2,距离2]}
线程T1修改D[1][0]
,线程T2修改D[1][1]
,线程T3修改D[ 2][2]
等,因此T1应该锁定D[1][0]
,T2应该锁定D[1][1]
。 T3 应锁定 D[2][2]
并同时修改它们。
最佳答案
在Python中,有Global Interpreter Lock ,所以你不必担心锁定。您也不会获得多线程的性能优势,至少不会像您习惯的 Java 或 C 那样。
简而言之,一次只有一个线程运行 Python 代码。如果您受 I/O 限制(例如网络访问),这就是您想要的解决方案。如果您受 CPU 限制(例如计算),请使用 native 模块或查看多处理模块。
关于python - 如何在Python中使用锁允许多个线程更改对象的不同部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28825037/