繁体   English   中英

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主进程内部调用sleep函数后,睡眠了。 我找到了这个帖子 但是这里的睡眠习惯是在上课的。 当我运行答案时,我得到了那个( 处理结束,退出代码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()

会做你想做的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM