有四个线程,每个线程只打印一个数字,这四个数字分别是1、2、3、4,现在要求你做到四个线程顺序打印1、2、3、4,且每个线程都打印10次,请输出python的程序代码
时间: 2023-08-31 07:14:03 浏览: 33
可以使用线程锁来保证四个线程按照指定顺序输出数字,代码如下:
```python
import threading
class PrintThread(threading.Thread):
def __init__(self, num, lock):
threading.Thread.__init__(self)
self.num = num
self.lock = lock
def run(self):
for i in range(10):
self.lock.acquire() # 获取锁
print(self.num)
self.lock.release() # 释放锁
if __name__ == '__main__':
lock1 = threading.Lock()
lock2 = threading.Lock()
lock3 = threading.Lock()
t1 = PrintThread(1, lock1)
t2 = PrintThread(2, lock2)
t3 = PrintThread(3, lock3)
t4 = PrintThread(4, lock1)
t1.start()
t2.start()
t3.start()
t4.start()
t1.join()
t2.join()
t3.join()
t4.join()
```
这里使用了三个锁来控制四个线程的顺序输出。其中,线程1和线程4共用一个锁,这样可以保证它们交替执行;线程2和线程3各自拥有一个锁,这样可以保证它们依次执行。