并发篇-python并发通信-1

2019-07-18 10:58:48 浏览数 (1)

1. 管理器负责与公共进程通信

2. 代理负责操作共享的空间

Manger对象的基本使用

一般常用的空间类型是:

1. mgr.list()

2. mgr.dict()

3. mgr.Queue()

线程间共享的全局变量与同步锁

你会发现print输出的 a = 2,为什么上一篇的输出不是这样呢?

因为线程属于同一个进程,因此它们之间共享内存区域。因此全局变量是公共的。

进程a:线程a1,线程a2

进程b:线程b1,线程b2

隔着进程,线程通信一样Manager,属于进程通信。

互斥锁:控制共享资源的访问

# 指定加减次数

>>> n = 1000000 # 线程锁

>>> lock = Lock()

# 加

>>> def incr(n):

# 申明全局变量

>>> global a

# 对全局变量 a 做 n 次加 1

>>> for i in range(n):

# 上锁

>>> lock.acquire()

# 解锁

>>> lock.release()

互斥锁和死锁

互斥锁是指锁住一个线程或进程执行,执行完后再执行下一个。

死锁是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。

0 人点赞