原理:
给定一个数量,对多个进程可见,且多个进程都可以操作。进程通过对数量多少的判断执行各自的行为。
multiprocessing --> Semaphore()
函数方法:
sem = Semaphore(num)
功能 : 创建信号量对象
参数 : 信号量的初始值
返回 : 信号量对象
sem.acquire() 将信号量数量减1 当数量为0则阻塞
sem.release() 将信号量数量加1
sem.get_value() 获取当前信号量的值
import os #创建3信号量 sem = Semaphore(3) def fun1(): #sem.get_value()获取当前信号量的值, #因此可以作为判断,让其进行相对应的函数。 if sem.get_value() == 3: print("niaho") sem.acquire() def fun2(): if sem.get_value() == 2: print("fengshao") sem.release() while True: p = Process(target = fun1) p1 = Process(target = fun2) p.start() p1.start() p.join() p1.join() 输出结果: niaho fengshao niaho fengshao 无限循环