代码之家  ›  专栏  ›  技术社区  ›  Iorek

Python线程打印覆盖自身[重复]

  •  2
  • Iorek  · 技术社区  · 7 年前

    我有以下线程打印功能。

    from threading import Thread
    from random import *
    import time
    
    def PrintRandom():
        rand = random()
        time.sleep(rand)
        print(rand)
    
    if __name__ == "__main__":
        Thread(target=PrintRandom).start()
        Thread(target=PrintRandom).start()
    

    这在大多数情况下都有效,并输出以下内容

    0.30041615558463897

    0.5644155082254415

    然而,一旦出现蓝色月亮,以下是输出

    0.56441550822544150.5644155082254416

    shell尝试同时打印这两个语句,并返回一个不连贯的语句。是否有办法确保第一次输出?

    1 回复  |  直到 5 年前
        1
  •  3
  •   Laszlowaty    7 年前

    是-创建 queue 。它可以是一个列表,您可以在其中附加要打印的新字符串,并使用单独的线程从该列表中删除第一个元素并打印它。确保打印线程在while/for循环中运行并使用 sleep(0.1) 方法以不使用太多CPU。