我在Python 3x中玩过线程。以下是我的代码。
import threading
def hello_world2():
threading.Timer(7.0, hello_world2).start()
print("22222222!")
def hello_world():
threading.Timer(5.0, hello_world).start()
print("Hello, World!")
hello_world2()
hello_world()
然而,我对打印输出感到惊讶,因为我观察到输出有两种可能的情况 第一个是
Hello, World!
22222222!
Hello, World!
22222222!
Hello, World!
Hello, World!
22222222!
首先打印出Hello, World!
,而在我的代码中,我首先专门写了打印22222222!
。
第二种情况是
22222222!
Hello, World!Hello, World!
22222222!
Hello, World!
22222222!
Hello, World!
Hello, World!
22222222!
虽然它首先打印22222222!
,但在第二行打印第二个Hello, World!
之前没有开始换行。
所以,我想知道这里发生了什么导致这种行为,并且我能够控制它以使其按照我打算的方式行事。
注意:我的问题主要不是关注打印,而是询问多线程程序的一般行为。如果我使用多个线程,我的程序会有一个狡猾或不受欢迎的执行顺序吗?即使我不打印出来(与运行单个线程相比),这种奇怪的行为是否存在
谢谢。