两个线程分别交替打印a和b打印100次
以下是一个使用Python的多线程实现的示例代码:
import threading
class PrintAB(threading.Thread):
def __init__(self, name, target, next_target, count):
threading.Thread.__init__(self)
self.name = name
self.target = target
self.next_target = next_target
self.count = count
def run(self):
for i in range(self.count):
with lock:
print(self.target, end='')
lock.notify()
lock.wait()
lock = threading.Condition()
t1 = PrintAB('Thread1', 'a', 'b', 100)
t2 = PrintAB('Thread2', 'b', 'a', 100)
t1.start()
t2.start()
t1.join()
t2.join()
在上述代码中,我们定义了一个PrintAB类,该类继承自threading.Thread,并重写了run()方法。在run()方法中,使用with lock语句获取锁,并使用lock.notify()通知另一个线程,然后使用lock.wait()暂停当前线程,等待另一个线程的通知。
我们创建了两个PrintAB对象,分别用来打印a和b,并传入了相应的参数。然后,我们使用start()方法启动这两个线程,并使用join()方法等待它们执行结束。
通过使用条件变量lock来控制线程的交替执行,我们可以确保两个线程分别交替打印a和b,并且每个字符都打印100次
原文地址: https://www.cveoy.top/t/topic/h033 著作权归作者所有。请勿转载和采集!