编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
时间: 2024-02-03 21:14:58 浏览: 49
以下是一个使用 Python 的简单实现:
```python
import threading
class PrintThread(threading.Thread):
def __init__(self, thread_id, lock):
threading.Thread.__init__(self)
self.thread_id = thread_id
self.lock = lock
def run(self):
count = 0
while count < 10:
with self.lock:
print(self.thread_id, end='')
count += 1
lock = threading.Lock()
threads = []
threads.append(PrintThread('A', lock))
threads.append(PrintThread('B', lock))
threads.append(PrintThread('C', lock))
for t in threads:
t.start()
for t in threads:
t.join()
print()
```
这个程序中,我们定义了一个 `PrintThread` 类继承自 `threading.Thread`,并且重写了 `run` 方法,以便在每个线程中打印出线程 ID。同时,我们使用了一个锁来保证输出的顺序,确保每个线程执行完毕后,才能让下一个线程执行。最后,我们启动了3个线程,并等待它们全部执行完毕后,输出一个换行符,以表示输出结束。
阅读全文