在Python中,可以使用multiprocessing
模块的Semaphore
类来实现信号量。下面是一个使用Semaphore
的示例代码:
from multiprocessing import Semaphore, Process
# 初始化信号量为0
semaphore = Semaphore(0)
def worker():
print("Worker is starting...")
# 执行一些工作任务
print("Worker is done.")
# 释放信号量
semaphore.release()
# 创建一个工作进程
process = Process(target=worker)
# 启动工作进程
process.start()
print("Main process is waiting...")
# 等待信号量被释放
semaphore.acquire()
print("Main process resumes.")
# 等待工作进程结束
process.join()
在上面的示例中,我们创建了一个Semaphore
对象并将其初始化为0。在工作进程中,它执行了一些工作任务,并在完成后释放信号量。主进程等待信号量被释放后恢复执行。这样可以确保在工作进程完成之前,主进程不会继续执行。