进程的创建
在一个新进程执行一个新的程序需要两个步骤:
- 创建一个新进程 (fork)
- 通过 exec 系统调用把新的二进制程序加载到该进程
在早期的 UNIX 系统中,调用fork()时,内核会复制所有的内部数据结构. 现在的 UNIX 系统采用 copy-on-write(COW) 的惰性算法的优化策略. fork 新进程的时候,会共享同一个副本的内容. 如果有进行 write 操作,才开始拷贝内存,这样可以减少资源的浪费.
ProcessPoolExector
Python3中的concurrent.futures.ProcessPoolExecutor模块可以非常方便的进行多进程编程. ProcessPoolExecutor是基于multiprocessing模块. multiprocessing模块在linux操作系统下使用fork创建子进程. 其他操作系统下还有另外两种新建多进程的模式: spawn, fork server
Pymongo
Pymongo 是线程安全的, 提供了内置的

本文探讨了在Linux环境下,Motor Mongo在多进程场景下的使用情况。尽管Motor不支持多线程和forking,但在实际测试中,对数据库进行查询操作在多进程环境中仍能稳定运行。同时,提到了Pymongo的线程安全性和非fork-safe特性,以及ProcessPoolExecutor在多进程编程中的应用。
最低0.47元/天 解锁文章
1055

被折叠的 条评论
为什么被折叠?



