第七篇:Python 进阶-多线程与多进程深入
1. 多线程同步机制深化
信号量(Semaphore)
信号量是一种用于控制对共享资源访问的同步原语。它维护了一个计数器,该计数器表示当前可用的资源数量。当一个线程想要访问共享资源时,它必须先获取信号量(将计数器减 1)。如果计数器的值为 0,表示没有可用资源,线程将被阻塞,直到有其他线程释放信号量(将计数器加 1)。
在 Python 中,可以使用 threading.Semaphore
来创建信号量对象。以下是一个简单的示例,展示了如何使用信号量来限制同时访问共享资源的线程数量:
import threading
import time
# 创建一个信号量,允许同时 3 个线程访问
semaphore = threading.Semaphore(3