python 设计1.有四个线程,每个线程只打印一个数字,这四个数字分别是 1 2 3 4 ,现在要求你做到四个线程顺序打印 1 2 3 4 ,且每个线程都打印10次.
时间: 2023-11-27 11:52:04 浏览: 31
可以使用 Python 的 threading 模块来实现。下面是一个可能的实现:
```python
import threading
class NumberPrinter(threading.Thread):
def __init__(self, number, lock):
threading.Thread.__init__(self)
self.number = number
self.lock = lock
def run(self):
for i in range(10):
with self.lock:
print(self.number)
self.lock.notifyAll()
self.lock.wait()
if __name__ == '__main__':
lock = threading.Condition()
threads = []
for i in range(4):
thread = NumberPrinter(i+1, lock)
threads.append(thread)
thread.start()
# 唤醒第一个线程开始打印
with lock:
lock.notifyAll()
```
这里定义了一个 `NumberPrinter` 类表示每个线程,它有一个数字属性和一个锁属性。在 `run` 方法中,每个线程都会打印自己的数字,并且在打印完成后通知其他线程可以开始打印了。这里使用了 `Condition` 类来实现线程间的同步。
最后在 `main` 函数中创建四个线程并启动,然后唤醒第一个线程开始打印。这样就可以保证每个线程都按顺序打印数字了。