后台Python函数

后台Python函数,python,multithreading,background-process,Python,Multithreading,Background Process,我想独立运行一个函数。从我调用的函数中,我希望在不等待其他函数结束的情况下返回 我试过使用threadind,但这将等待结束 thread = threading.Thread(target=myFunc) thread.daemon = True thread.start() return 'something' 是否可以立即返回,而另一个进程仍在运行? 谢谢你的回答 编辑 工作代码如下所示: import concurrent.futures executor = concurren

我想独立运行一个函数。从我调用的函数中,我希望在不等待其他函数结束的情况下返回

我试过使用threadind,但这将等待结束

thread = threading.Thread(target=myFunc)
thread.daemon = True
thread.start()
return 'something'
是否可以立即返回,而另一个进程仍在运行? 谢谢你的回答

编辑 工作代码如下所示:

 import concurrent.futures 
 executor = concurrent.futures.ThreadPoolExecutor(2) 
 executor.submit(myFunc, arg1, arg2)

如果我正确理解了您的请求,您可能需要查看工作队列


基本上,将工作转移到视图中创建的线程不是一个好主意,这通常是通过拥有一个后台工作人员池(进程、线程)和传入请求队列来处理的。

我认为您使用的语法是正确的,我不明白为什么您的请求不应该立即返回。您是否验证了请求是否实际挂起,直到线程结束

我建议将
myFunc
设置为写入一个文件,以便您跟踪它

def myFunc():
    f = open('file.txt', 'w')
    while True:
        f.write('hello world')

您或多或少地提出了以下问题:

您必须更改链接中的示例代码,如下所示:

from multiprocessing import Process

def myFunc():
    pass  # whatever function you like

p = Process(target=myFunc)
p.start()  # start execution of myFunc() asychronously
print)'something')

p、 start()是非同步执行的,即无论myFunc()的执行多么耗时,都会立即打印出“某物”。脚本执行myFunc(),并不等待它完成。

您是否在另一个将用作内联函数的函数中包含此代码?(将在
线程
完成之前结束的)这是一个Django视图函数,我想在结束调用的函数之前重定向,但这需要等待。您必须将该函数卸载到另一个线程。你运行的是在同一个线程上运行的。在我发布此消息之前,我可能会看到该票证的副本。这并没有解决我的问题。谢谢,有了这个我就可以去见遗嘱执行人了。工作代码如下所示:import concurrent.futures executor=concurrent.futures.ThreadPoolExecutor(2)executor.submit(myFunc,arg1,arg2)