python 中的简单线程不会同时 运行
simple threading in python does not run concurrently
我想做一个简单的线程,但我不确定为什么它不起作用。
我创建了 2 个基本函数,每个函数都打印“hello”5 次,并为每个函数创建一个线程,但出于某种原因,它们 运行 一个接一个而不是同时发生。
这是代码:
def check1():
for i in range(5):
print("hello 1")
def check2():
for i in range(5):
print("hello 2")
t1 = threading.Thread(target=check1)
t2 = threading.Thread(target=check2)
t1.start()
t2.start()
我得到:
hello 1
hello 1
hello 1
hello 1
hello 1
hello 2
hello 2
hello 2
hello 2
hello 2
假设您有 3 项任务:洗碗、整理房间和清洁 windows。您可以按照您想要的任何顺序进行,您可以开始 1 并暂停它,然后在完成之前再进行一次。线程类似于计算机的任务,它们必须执行所有这些任务,并且它们将按照他们想要的任何顺序执行,并根据需要在它们之间交换。
现在假设您的任务是按下绿色按钮、按下红色按钮和按下黄色按钮。这些任务非常简单,一旦您开始按下按钮停止,然后完成之前就没有意义,转到另一个任务然后再回来。这些任务非常简单,甚至在您考虑更改为另一项任务之前就会完成。您提供给计算机的任务是微不足道的。写 5 次 hello
就像按一个按钮,它甚至不会考虑切换到另一个线程。如果你让它在每个 hello
之间休眠 100 毫秒,在等待时它会询问自己是否有另一个任务要做并执行它,但是如果你让它打印 5 hello
s一行它会立即完成,然后它会问自己还有什么其他任务。
当任务复杂得多时,您将不需要添加睡眠,它会自行交换任务。
我想做一个简单的线程,但我不确定为什么它不起作用。 我创建了 2 个基本函数,每个函数都打印“hello”5 次,并为每个函数创建一个线程,但出于某种原因,它们 运行 一个接一个而不是同时发生。
这是代码:
def check1():
for i in range(5):
print("hello 1")
def check2():
for i in range(5):
print("hello 2")
t1 = threading.Thread(target=check1)
t2 = threading.Thread(target=check2)
t1.start()
t2.start()
我得到:
hello 1
hello 1
hello 1
hello 1
hello 1
hello 2
hello 2
hello 2
hello 2
hello 2
假设您有 3 项任务:洗碗、整理房间和清洁 windows。您可以按照您想要的任何顺序进行,您可以开始 1 并暂停它,然后在完成之前再进行一次。线程类似于计算机的任务,它们必须执行所有这些任务,并且它们将按照他们想要的任何顺序执行,并根据需要在它们之间交换。
现在假设您的任务是按下绿色按钮、按下红色按钮和按下黄色按钮。这些任务非常简单,一旦您开始按下按钮停止,然后完成之前就没有意义,转到另一个任务然后再回来。这些任务非常简单,甚至在您考虑更改为另一项任务之前就会完成。您提供给计算机的任务是微不足道的。写 5 次 hello
就像按一个按钮,它甚至不会考虑切换到另一个线程。如果你让它在每个 hello
之间休眠 100 毫秒,在等待时它会询问自己是否有另一个任务要做并执行它,但是如果你让它打印 5 hello
s一行它会立即完成,然后它会问自己还有什么其他任务。
当任务复杂得多时,您将不需要添加睡眠,它会自行交换任务。