代码
# -*- coding: utf-8 -*-
# @Author : zbz
import threading
import time
from concurrent.futures import ThreadPoolExecutor
sema = threading.Semaphore(3) # 信号量, 最多允许3个线程同时操作
def job(n):
sema.acquire()
print("start...", n + 1)
time.sleep(2) # 方便查看效果
sema.release()
if __name__ == '__main__':
pool = ThreadPoolExecutor(max_workers=10)
pool.map(job, [n for n in range(10)])
多线程并发控制:Python信号量实现
本文介绍了一个使用Python的`threading`模块和`Semaphore`实现的并发控制示例,展示了如何限制最多3个线程同时执行job函数,确保资源有序访问。
413

被折叠的 条评论
为什么被折叠?



