Python多线程与多进程知识梳理


 

from cuncurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor
import flask
  • 多进程

    • 环境之间是相互完全隔离的(定义pool的时候,它所依赖的这些函数必须都已经声明完了,就是要放到所使用到的函数最下面)

    app = flask.Flask(__name__)
    """
    一堆代码
    """
    if __name__ == "__main__":
       process_pool = ProcessPoolExecutor()
       app.run()
  • 多线程

    • 定义到哪里都没问题(共享当前进程的所有环境)

    app = flask.Flask(__name__)
    process_pool = ThreadPoolExecutor()
    """
    一堆代码
    """
    if __name__ == "__main__":
       app.run()

补充:

把子进程p设置为守护进程,以后主进程退出子进程直接销毁(默认是主进程需要等待子进程执行完才结束)

p.daemon=True

退出主进程之前,先让子进程p销毁

p.terminate()

当前进程(主进程)等待子进程p执行完成后代码再继续往下执行

p.join()

另外进程间不共享全局变量

posted @ 2022-05-03 18:29  Asolitary  阅读(31)  评论(0编辑  收藏  举报