Edison's Studio.

DRF Exception Handle

Word count: 250Reading time: 1 min
2021/07/15
loading

持续更新关于python并行计算与异步计算的包,后续再根据篇章拆分。

Python 并行

并行库

threading
multiprocessing

multiprocessing 中的一些问题

问题
  • 开启子进程的方法与问题
    spawn相比fork会更耗时,但是fork在处理一个多线程的进程时可能会陷入死锁等问题。这是由于fork本身的机制造成的。这也使得在使用包的过程中常常遇到一些问题。
  • IO问题
    fork本身会继承打开文件的描述符,所以对于多进程的处理,要留意IO处理带来的不良影响
    建议
    由于使用多进程更多是因为,CPython本身的GIL造成无法使用多个CPU核,而使用多进程的方式进行处理。所以仅当处理多核计算任务的时候,我们使用multiprocessing,并且尽量让处理内容限定在计算而不包含IO。

Python 异步

gunicorn + gevent

gunicorn async worker

其他

Event Loop Wiki

CATALOG
  1. 1. Python 并行
    1. 1.1. 并行库
    2. 1.2. multiprocessing 中的一些问题
      1. 1.2.1. 问题
      2. 1.2.2. 建议
  2. 2. Python 异步
    1. 2.1. gunicorn + gevent
  3. 3. 其他