python 共享内存 锁_在Python中线程之间共享dict时,是否可以避免锁开销?

python中的多线程处理是无用的。最好使用多处理模块。因为多线程只能在较少的情况下发挥积极作用。在Python implementation detail: In CPython, due to the Global

Interpreter Lock, only one thread can execute Python code at once

(even though certain performance-oriented libraries might overcome

this limitation). If you want your application to make better use of

the computational resources of multi-core machines, you are advised to

use multiprocessing. However, threading is still an appropriate model

if you want to run multiple I/O-bound tasks simultaneously.

Official documentation.

如果您没有任何代码示例,我只能建议将大字典分成几个部分,并使用Pool.map处理每个部分。并在主流程中合并结果。在

不幸的是,在不同的python进程之间有效地共享大量内存是不可能的(我们讨论的不是基于mmap的共享内存模式)。但是你可以在不同的过程中阅读字典的不同部分。或者只需在主进程中阅读整个字典,并给子进程一小块。在

另外,我要提醒你,你应该非常小心地使用多处理算法。因为每多出一兆字节就会乘以进程的数量。在

因此,基于您的伪代码示例,我可以假设基于compute函数的两种可能的算法:# "Stateless&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值