Python time.sleep 锁进程
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
内调用睡眠函数后,主进程就睡着了。我找到了this post。但是这里的 sleep 是和 class 一起使用的。我明白了(进程已完成,退出代码为 0
) 结果当我 运行 回答时。谁能解释我哪里出错了?
- 我在 windows
上使用 python 3.*
创建线程时,您实际上是在尝试为 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()
会做你想做的事
我想创建多进程应用程序。这是示例:
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
内调用睡眠函数后,主进程就睡着了。我找到了this post。但是这里的 sleep 是和 class 一起使用的。我明白了(进程已完成,退出代码为 0
) 结果当我 运行 回答时。谁能解释我哪里出错了?
- 我在 windows 上使用 python 3.*
创建线程时,您实际上是在尝试为 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()
会做你想做的事