看以下示例代码:
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核只需分配一次。

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