import threading
import time
sem = threading.Semaphore(2)
threadingLock = threading.Lock()
def go_thread():
with sem:
for i in range(5):
threadingLock.acquire()
print('这是', threading.current_thread().name, '正在打印', i)
time.sleep(1)
threadingLock.release()
for j in range(5):
threading.Thread(target=go_thread).start()
这是 Thread-1 正在打印 0
这是 Thread-1 正在打印 1
这是 Thread-2 正在打印 0
这是 Thread-2 正在打印 1
这是 Thread-2 正在打印 2
这是 Thread-1 正在打印 2
这是 Thread-2 正在打印 3
这是 Thread-1 正在打印 3
这是 Thread-1 正在打印 4
这是 Thread-2 正在打印 4
这是 Thread-3 正在打印 0
这是 Thread-3 正在打印 1
这是 Thread-4 正在打印 0
这是 Thread-3 正在打印 2
这是 Thread-4 正在打印 1
这是 Thread-3 正在打印 3
这是 Thread-3 正在打印 4
这是 Thread-4 正在打印 2
这是 Thread-5 正在打印 0
这是 Thread-4 正在打印 3
这是 Thread-4 正在打印 4
这是 Thread-5 正在打印 1
这是 Thread-5 正在打印 2
这是 Thread-5 正在打印 3
这是 Thread-5 正在打印 4