编写代码实现编写一个程序,开启三个线程,这三个线程的id分别是A,B,C,每个线程将自己的id在屏幕上打印10遍,要求输出必须按照ABC的顺序显示
时间: 2024-10-18 10:07:55 浏览: 37
在Python中,我们可以使用`threading`模块以及`Queue`来实现这个需求。由于直接控制线程的调度可能会有不确定性,这里我们将使用线程安全的方式来保证线程执行的顺序。以下是使用`queue`来管理任务的示例代码:
```python
import threading
from queue import Queue
# 线程池
class OrderedThread(threading.Thread):
def __init__(self, id_, queue):
super(OrderedThread, self).__init__()
self.id = id_
self.queue = queue
self.lock = threading.Lock()
def run(self):
while not self.queue.empty():
with self.lock:
item = self.queue.get()
print(f"{item}: {self.id}")
self.queue.task_done()
# 创建任务队列
task_queue = Queue(maxsize=0)
for letter in ['A', 'B', 'C']:
task_queue.put(letter)
# 启动线程
threads = [OrderedThread(id_, task_queue) for id_ in ['A', 'B', 'C']]
for thread in threads:
thread.start()
# 等待所有任务完成
task_queue.join()
阅读全文