Python windows linux 多进程

本篇博客介绍了一个使用Python的多进程方法来并行抓取不同币种数据的示例,包括设置WebSocket连接、利用Gzip压缩传输数据、记录抓取时间和使用Redis缓存数据等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/usr/bin/python3
#coding: utf-8
from websocket import create_connection
import gzip
import time
import json
import redis
from multiprocessing import Pool



def getdata(currsname):
    print(currsname)


if __name__ == '__main__':
    p = Pool(5)
    currnames = ['ethusdt', 'btcusdt', 'bchusdt', 'eosusdt', 'ltcusdt']
    for i in currnames:
        p.apply_async(getdata, args=(i,))
        print('进程' + i + '启动成功!')
    p.close()
    p.join()


### Windows环境下的Python多进程编程 在Windows操作系统中,由于缺乏`fork()`系统调用的支持,因此无法像Linux那样简单地创建子进程。为了实现在Windows平台上的多进程编程,推荐使用标准库中的`multiprocessing`模块[^1]。 #### 创建简单的多进程程序 下面是一个基本的例子来展示如何启动一个新的进程: ```python from multiprocessing import Process, current_process def worker(num): """线程函数""" print(f"Worker: {num}, PID: {current_process().pid}") if __name__ == "__main__": processes = [] for i in range(5): # 启动五个工作进程 p = Process(target=worker, args=(i,)) processes.append(p) p.start() for p in processes: p.join() # 等待所有子进程结束 ``` 这段代码展示了怎样定义一个目标函数,并将其传递给新的进程实例化对象;随后通过`.start()`方法启动这些新创建的工作进程。最后,主线程会等待所有的子进程完成执行后再继续往下走。 #### 数据共享与通信机制 当涉及到不同进程间的数据交换时,在Windows下可以采用如下几种常见的方式: - **Queue**: 提供了一种安全的方法来进行跨进程间的队列操作。 ```python from multiprocessing import Queue queue = Queue() queue.put('a') print(queue.get()) ``` - **Pipe**: 双向管道允许两个连接端之间互相发送消息。 ```python from multiprocessing import Pipe conn1, conn2 = Pipe() conn1.send([1, 2, {'hello': 'world'}]) data = conn2.recv() print(data) ``` 这两种工具都是专门为了解决父子进程之间的数据传输而设计的,能够很好地适应于各种应用场景的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值