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