三个线程循环打印ABC
时间: 2023-08-16 11:09:43 浏览: 154
可以使用Python的多线程模块`threading`来实现。具体代码如下:
```python
import threading
class PrintThread(threading.Thread):
def __init__(self, name, prev, cur):
super().__init__(name=name)
self.prev = prev
self.cur = cur
def run(self):
for i in range(5):
self.prev.acquire()
print(self.name, end='')
self.cur.release()
if __name__ == '__main__':
a_lock = threading.Lock()
b_lock = threading.Lock()
c_lock = threading.Lock()
a_lock.acquire()
b_lock.acquire()
c_lock.acquire()
thread_a = PrintThread('A', c_lock, a_lock)
thread_b = PrintThread('B', a_lock, b_lock)
thread_c = PrintThread('C', b_lock, c_lock)
thread_a.start()
thread_b.start()
thread_c.start()
c_lock.release()
```
其中,定义了一个`PrintThread`类,用于执行打印操作。每个线程需要持有前一个线程的锁和自己的锁,当前一个线程执行完后,释放前一个锁,再获取自己的锁,进行打印操作。最后,主线程释放C锁,使第一个线程开始执行。
阅读全文