用python编写程序:有四个线程,每个线程只打印一个数字,这四个数字分别是 1 2 3 4 ,现在要求你做到四个线程顺序打印 1 2 3 4 ,且每个线程都打印10次
时间: 2024-02-15 13:03:24 浏览: 19
可以使用 Python 中的 threading 模块来实现多线程顺序打印。具体实现可以参考以下代码:
```python
import threading
class MyThread(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):
with self.lock:
print(self.num)
self.lock.notifyAll()
self.lock.wait()
if __name__ == '__main__':
lock = threading.Lock()
t1 = MyThread(1, lock)
t2 = MyThread(2, lock)
t3 = MyThread(3, lock)
t4 = MyThread(4, lock)
t1.start()
t2.start()
t3.start()
t4.start()
with lock:
lock.notifyAll()
```
在这个程序中,我们定义了一个 MyThread 类,这个类继承了 threading.Thread 类。在 run() 方法中,我们使用了一个锁对象 lock,来保证线程之间的同步。在每个线程内部,我们使用了 with lock: 的语句块,来获取锁并打印数字。然后,我们调用了锁的 notifyAll() 方法,来通知其他线程可以运行了,然后自己调用了 wait() 方法,来等待其他线程的通知。最后,在主线程中,我们也调用了锁的 notifyAll() 方法,来通知其他线程可以开始运行了。这样,我们就可以保证四个线程顺序打印 1 2 3 4 ,且每个线程都打印10次。