python多进程处理数据的简单示例

看以下示例代码:

from multiprocessing import Pool
import time

stockmd_series = (["sh688399", 5], 
                  ["sh600539", 2],
                  ["sh600000", 1], 
                  ["sz000002", 3],
                  ["sz000003", 2],
                  ["sz000005", 4])

def get_stockmd(market_data):
    print(" 读取 %s 行情数据,耗费 %s 毫秒" % (market_data[0], market_data[1]))
    time.sleep(int(market_data[1])) # 本行替代为读取个股数据的函数
    print(" %s 行情数据读取完毕!" % market_data[0])

def pool_handler(core_num):
    p = Pool(core_num)
    p.map(get_stockmd, stockmd_series)

if __name__ == '__main__':
    #pool_handler(2)
		pool_handler(6)

以上代码中,pool_handler的参数指一次分配几个cpu核数同时处理数据。当pool_handler(2)时的运行结果如下:

读取 sh688399 行情数据,耗费 5 毫秒
 读取 sh600539 行情数据,耗费 2 毫秒
 sh600539 行情数据读取完毕!
 读取 sh600000 行情数据,耗费 1 毫秒
 sh600000 行情数据读取完毕!
 读取 sz000002 行情数据,耗费 3 毫秒
 sh688399 行情数据读取完毕!
 读取 sz000003 行情数据,耗费 2 毫秒
 sz000002 行情数据读取完毕!
 读取 sz000005 行情数据,耗费 4 毫秒
 sz000003 行情数据读取完毕!
 sz000005 行情数据读取完毕!

当pool_handler(6)时的运行结果如下:

读取 sh688399 行情数据,耗费 5 毫秒
 读取 sh600539 行情数据,耗费 2 毫秒
 读取 sh600000 行情数据,耗费 1 毫秒
 读取 sz000002 行情数据,耗费 3 毫秒
 读取 sz000003 行情数据,耗费 2 毫秒
 读取 sz000005 行情数据,耗费 4 毫秒
 sh600000 行情数据读取完毕!
 sh600539 行情数据读取完毕!
 sz000003 行情数据读取完毕!
 sz000002 行情数据读取完毕!
 sz000005 行情数据读取完毕!
 sh688399 行情数据读取完毕!

从以上运行结果可以看出,一次分配2个核数就需要多次分配多次,一次分配6核只需分配一次。

python多进程处理数据的简单示例

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/73795
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 10 日
下一篇 2024 年 7 月 11 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注