我正在尝试创建一个锁,以防止两个线程同时打印。但是,脚本可以运行并完成,没有错误,但是没有任何输出。如何使程序打印输出。
我尝试重命名锁并使用多线程库而不是踩踏库,但是使用多线程库时遇到了更多错误。我尝试直接在打印上设置一个锁定,但是这完全导致使用打印时出错。
import threading
lo = threading.Lock()
class Hello(threading.Thread):
def run(self):
for a in range(500):
global lo
with lo:
print("Hello")
class Hi(threading.Thread):
def run(self):
for b in range(500):
global lo
with lo:
print("Hi")
t1=threading.Thread(target=Hello)
t2=threading.Thread(target=Hi)
t1.run()
t2.run()
我期望字符串“ Hello”和“ Hi”将在单独的行上打印,但是输出完全丢失。
答案 0 :(得分:0)
尝试一下:
import threading
lo = threading.Lock()
def Hello(self):
for a in range(500):
global lo
with lo:
print("Hello")
def Hi(self):
for b in range(500):
global lo
with lo:
print("Hi")
t1=threading.Thread(target=Hello)
t2=threading.Thread(target=Hi)
t1.start()
t2.start()
检查threading
模块的文档:https://docs.python.org/3/library/threading.html