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

2024-04-28 20:40:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望通过只获取这些元素的锁,而不是为整个对象获取锁,从而允许不同的线程对不同的值元素进行更改。在

例如:考虑一下字典-

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

线程T1修改D[1][0],线程T2修改D[1][1],线程T3修改{},等等,因此T1应该锁定D[1][0],T2应该锁定D[1][1]。T3应该锁定D[2][2],并同时修改它们。在


Tags: 对象元素字典time线程distancespeedt1
1条回答
网友
1楼 · 发布于 2024-04-28 20:40:13

在Python中,有Global Interpreter Lock,因此不必担心锁定。您也不会从多线程处理中获得性能优势,至少不会像Java或C那样

简而言之,一次只有一个线程运行Python代码。如果您受I/O限制(例如网络访问),这就是您想要的解决方案。如果您是CPU限制(例如计算),请使用本机模块或查看多处理模块。在

相关问题 更多 >