最近发现 tomorrow 模块也挺好用的, 只要放一个装饰器就好了,异步执行,简单操作,但总感觉性能一般般,大家一般是哪个模块来做多线程的。
threading 多线程,multiprocessing 是多进程,tomorrow 没用过,一般来说用多线程足够了,多进程感觉没啥必要,不过还是要看自己的业务场景,据说还有一个封装了 threading 和 multprocessing 的模块,叫啥我忘记了,好像也还可以
IO 密集型用多线程,一般 IO 阻塞会释放 GIL,多线程有效;CPU 密集型用多进程,此时由于 GIL 导致多线程无效。
还有 gevent 协程,更轻量级,Locust 性能测试框架就是基于这个协程并发
还是 threading+queue 简单易用。
看了一下原理,io 密集型还是协程最快毕竟没有切换时间,服务器处理能力最高
from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor 这个使用更简单
tomorrow 是异步也 在 python 里是所谓的协程,站在 cpu 利用率上肯定协程最高效