python 全局变量赋值的问题

2025年03月23日 13:15
有2个网友回答
网友(1):

用multiprocess里的Queue,它自带锁,也支持进程间通信 。它是通过共享内存实现的。

通常进程与线程通信,尽量不要用全局变量,或者是类似的概念。而是要用信号,事件,队列,共享内存这样的概念。

因为变量操作在python里不是原子操作。即使是C语言,在多线程环境,多CPU,多核的情况下,也不是唯一的了。 均需要锁。

但是锁这个东西往往是程序同步的瓶颈。所有有些设计,比如ErLang完全取消了这样的方式。

大部分情况下,我们使用消息队列,事件,线程池这样的设计来实现同步。

网友(2):

同步锁用了没?