并行运行两个python函数不会产生结果
我有两个python函数,我想并行运行。我不希望子任务函数等待主任务函数并行运行两个python函数不会产生结果,python,multithreading,multiprocessing,Python,Multithreading,Multiprocessing,我有两个python函数,我想并行运行。我不希望子任务函数等待主任务函数 from threading import Thread from multiprocessing import Process from time import sleep,time def main_task(): while True: sleep(2) print('main task running') def sub_task(): while Tru
from threading import Thread
from multiprocessing import Process
from time import sleep,time
def main_task():
while True:
sleep(2)
print('main task running')
def sub_task():
while True:
sleep(5)
print('sub task running')
当我以这种方式使用线程时,我可以看到输出
q=Thread(target = main_task).start()
s=Thread(target = sub_task).start()
但当我以这种方式使用进程时,我看不到输出
q=Process(target = main_task).start()
s=Process(target = sub_task).start()
那么实现有什么问题。在
线程的末尾添加q.join()和s.join()。start
和进程。start
返回None
。如果要使用Process对象,需要执行q=Process(target=main\u task)
然后执行q.start()
。与线程相同。我将其更改为q=Process(target=main_task)
s=Process(target=sub_task)。start()
q.start()
q.join()
s.join()
但仍然没有结果,因为这些进程没有标记为“守护进程”,父进程应该对它们进行连接,有效地阻止父进程,直到子进程终止。它适用于我在linux上的控制台。如果您在IDE中运行,可能是其父进程中的伪标准输出,但子进程标准输出将基本上/dev/null
。那么,什么操作系统以及如何运行脚本?是的,它在控制台中运行。但它运行主任务,然后等待子任务,然后运行主任务和子任务。。。。但我不希望主任务等待子任务,因为主任务中的时间延迟较小,所以应该比子任务执行更多