Python进程和线程
分布式进程是一种计算模式,它通过在多个计算节点(多台机器)上并行运行多个进程来完成任务。
multiprocessing
模块中的 managers
子模块支持将多进程分布到多台机器上,且封装了网络通信细节,让你能轻松编写分布式多进程程序
核心机制:通过 BaseManager
将本地 Queue
暴露到网络上,其他机器的进程就能通过网络访问和操作这个队列,从而实现跨机器通信
示例架构:通常采用 Master-Worker 模式
Master(服务进程):负责创建任务队列(task_queue
)和结果队列(result_queue
),并将队列注册到网络上,然后向 task_queue
中添加任务,最后从 result_queue
收集结果
Worker(任务进程):连接到 Master,从 task_queue
获取任务,执行计算,并将结果放入result_queue
关键点:
身份验证 (authkey):为保证通信安全,防止恶意干扰,连接双方需设置相同的
authkey
数据序列化:进程间通过网络传递的对象必须是可序列化的(如 Pickle 协议)。
Queue 接口:在分布式环境中,必须通过
manager.get_task_queue()
获得的 Queue 接口来操作,而非直接操作原始队列对象