程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在 Python 模块中使用 __name__ == "__main__" 进行多处理大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在 Python 模块中使用 __name__ == "__main__" 进行多处理?

开发过程中遇到如何在 Python 模块中使用 __name__ == "__main__" 进行多处理的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在 Python 模块中使用 __name__ == "__main__" 进行多处理的解决方法建议,希望对你解决如何在 Python 模块中使用 __name__ == "__main__" 进行多处理有所启发或帮助;

我需要在 Flask 服务调用的模块中实现多处理。我知道在 Python 中进行多处理时需要使用保护 if __name__ == "__main__"。但在那种情况下,我不确定 __name__ == "__main__" 语句应该放在哪里。@H_502_5@

我的第一段代码是 Flask 服务:@H_502_5@

#core_API.py
import flask
import requests
import Process

app = flask.Flask(__name__)

print("starTing app")

@app.route('/query',method=['POST'])
def query():
    pl = requests.get_Json()
    result = Process.process_query(pl)
    return result

if __name__ == "__main__":
    app.run(host='0.0.0.0',port=8888)

Process.py 模块以递归方式使用 @H_655_3@multiprocessing:@H_502_5@

#Process.py
import multiprocessing
import multiprocessing.pool
from Node import nodeProcess,aggregate,processpoint

class NoDaemonProcess(multiprocessing.Process):
    def _get_daemon(self):
        return false
    def _set_daemon(self,value):
        pass
    daemon = property(_get_daemon,_set_daemon)

class MyPool(multiprocessing.pool.Pool):
    Process = NoDaemonProcess

def process_query(pl):
    if pl['nodes']:
        pool = MyPool(multiprocessing.cpu_count())
        nodeResults = [pool.apply(sub_process_query,nodE) for node in pl['nodes']]
        pool.close()
        res = aggregate(nodeResults)
    else:
        res = processpoint(pl)
    return res

def sub_process_query(pl):
    return process_query(pl)

此代码运行不正常,我可以看到它运行了多个子进程(无休止地打印“启动应用程序”)。我认为在某处需要使用 if __name__ == '__main__' 语句或解决方法,但我不确定具体如何。@H_502_5@

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的如何在 Python 模块中使用 __name__ == "__main__" 进行多处理全部内容,希望文章能够帮你解决如何在 Python 模块中使用 __name__ == "__main__" 进行多处理所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。