并行运行两个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

我有两个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 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
。那么,什么操作系统以及如何运行脚本?是的,它在控制台中运行。但它运行主任务,然后等待子任务,然后运行主任务和子任务。。。。但我不希望主任务等待子任务,因为主任务中的时间延迟较小,所以应该比子任务执行更多