Skip to main content
 首页 » 编程设计

python之如何允许多个线程使用 Python 中的锁更改对象的不同部分

2024年10月25日37dflying

我想允许不同的线程通过只为这些元素而不是整个对象获取锁来更改 Value 的不同元素。

例如:考虑字典——

D = {1:[time, speed, distance],2:[time1,speed1, distance1], 3:[time2, speed2, distance2]}

线程 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 模块或查看多处理模块。