Python time.sleep锁进程
我想创建多进程应用程序。以下是示例:Python time.sleep锁进程,python,multithreading,thread-sleep,Python,Multithreading,Thread Sleep,我想创建多进程应用程序。以下是示例: import threading import time from logs import LOG def start_first(): LOG.log("First thread has started") time.sleep(1000) def start_second(): LOG.log("second thread has started") if __name__ == '__main__': ###
import threading
import time
from logs import LOG
def start_first():
LOG.log("First thread has started")
time.sleep(1000)
def start_second():
LOG.log("second thread has started")
if __name__ == '__main__':
### call birhtday daemon
first_thread = threading.Thread(target=start_first())
### call billing daemon
second_thread = threading.Thread(target=start_second())
### starting all daemons
first_thread.start()
second_thread.start()
在此代码中,第二个线程不工作。我猜,在调用内部的sleep函数后,第一个线程主进程处于休眠状态。我找到了。但这里的睡眠是用来上课的。我得到了(进程已完成,退出代码为0
)结果当我跑的时候回答。有人能解释一下我在哪里犯了错误吗
- 我正在windows上使用python 3.*
创建线程时,实际上是在尝试为线程设置目标时调用函数,而不是向其传递函数。这意味着,当您尝试创建first\u线程时,实际上正在调用start\u first
,其中包括很长的睡眠时间。我想你会因为看不到第二个线程的输出而感到沮丧,然后杀死它,对吗
从target=
语句中删除paren,您将得到您想要的
first_thread = threading.Thread(target=start_first)
second_thread = threading.Thread(target=start_second)
first_thread.start()
second_thread.start()
在创建线程时,将执行您正在尝试的操作。在尝试为线程设置目标时,您实际上是在调用函数,而不是将函数传递给它。这意味着,当您尝试创建first\u线程时,实际上正在调用start\u first
,其中包括很长的睡眠时间。我想你会因为看不到第二个线程的输出而感到沮丧,然后杀死它,对吗
从target=
语句中删除paren,您将得到您想要的
first_thread = threading.Thread(target=start_first)
second_thread = threading.Thread(target=start_second)
first_thread.start()
second_thread.start()
方法1中的睡眠(1000)
太长,您必须等待1000秒,将其更改为时间。睡眠(5)
以查看即时结果。好的,但它会阻止第二个线程。为什么它是这样工作的?它实际上会运行,但是方法1中的时间太长了。sleep(1000)
需要等待1000秒,请将其更改为时间。sleep(5)
以查看即时结果。好的,但它会阻塞第二个线程。为什么它是这样工作的?另外,如果你想用参数为函数创建线程,你可以使用first\u thread=threading.thread(target=start\u first,args=())
同样,如果你想用参数为函数创建线程,你可以使用first\u thread=threading.thread(target=start\u first,args=())