Python基于socket的多进程分布式计算Demo
时间: 2024-10-15 20:10:11 浏览: 19
Python通过socket可以实现多进程间的通信,常用于构建分布式计算系统的基础框架。下面是一个简单的多进程分布式计算Demo示例,我们将创建一个服务器进程和几个工作进程,服务器分配任务给工作进程:
```python
import socket
import os
from multiprocessing import Process
# 创建一个Socket服务器
def server():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('localhost', 9999))
s.listen(5)
while True:
client, addr = s.accept()
data = client.recv(1024).decode('utf-8')
print(f"Received task {data} from client")
# 启动一个新的工作进程处理任务
p = Process(target=process_task, args=(data,))
p.start()
# 关闭连接,让客户端继续发送其他任务
client.close()
def process_task(task):
# 这里是模拟的任务处理逻辑,可以根据实际需求替换
result = f"Task {task} processed by worker"
print(f"Processed task: {result}")
if __name__ == "__main__":
# 开启服务器进程
server_process = Process(target=server)
server_process.start()
# 等待一段时间后结束主进程(仅作为示例,实际应用应一直运行)
time.sleep(60)
server_process.terminate()
```
在这个例子中,`server()`函数监听9999端口,接收到客户端的任务数据后,启动一个新的工作进程来处理它。`process_task()`函数则是具体的任务处理器。
阅读全文