[英]Python time.sleep lock process
我想创建多进程应用。 这是示例:
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()
在此代码中,第二个线程不起作用。 我猜想,在first_thread
主进程内部调用sleep函数后,睡眠了。 我找到了这个帖子 。 但是这里的睡眠习惯是在上课的。 当我运行答案时,我得到了那个( 处理结束,退出代码0 )。 有人能解释一下我做错了什么吗?
创建线程时,实际上是在尝试为Thread
设置目标时调用函数,而不是将函数传递给该函数。 这意味着当您尝试创建first_thread
您实际上是在调用start_first
,其中包括很长的睡眠时间。 我想您会因此而沮丧,因为您看不到第二个线程的输出并杀死它,对吗?
从target=
语句中删除括号,您将得到想要的
first_thread = threading.Thread(target=start_first)
second_thread = threading.Thread(target=start_second)
first_thread.start()
second_thread.start()
会做你想做的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.