代码
# -*- 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)])