麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

Python多進(jìn)程池 multiprocessing Pool用法示例

2020-02-15 22:55:43
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Python多進(jìn)程池 multiprocessing Pool用法。分享給大家供大家參考,具體如下:

1. 背景

由于需要寫python程序, 定時(shí)、大量發(fā)送htttp請(qǐng)求,并對(duì)結(jié)果進(jìn)行處理。

參考其他代碼有進(jìn)程池,記錄一下。

2. 多進(jìn)程 vs 多線程

c++程序中,單個(gè)模塊通常是單進(jìn)程,會(huì)啟動(dòng)幾十、上百個(gè)線程,充分發(fā)揮機(jī)器性能。(目前c++11有了std::thread編程多線程很方便,可以參考我之前的博客) shell腳本中,都是多進(jìn)程后臺(tái)執(zhí)行。({ ...} &, 可以參考我之前的博客,實(shí)現(xiàn)shell并發(fā)處理任務(wù)) python腳本有多線程和多進(jìn)程。由于python全局解鎖鎖的GIL的存在,一般建議 CPU密集型應(yīng)該采用多進(jìn)程充分發(fā)揮多核優(yōu)勢(shì),I/O密集型可以采用多線程。

盡管Python完全支持多線程編程, 但是解釋器的C語言實(shí)現(xiàn)部分在完全并行執(zhí)行時(shí)并不是線程安全的。
實(shí)際上,解釋器被一個(gè)全局解釋器鎖保護(hù)著,它確保任何時(shí)候都只有一個(gè)Python線程執(zhí)行。
GIL最大的問題就是Python的多線程程序并不能利用多核CPU的優(yōu)勢(shì) (比如一個(gè)使用了多個(gè)線程的計(jì)算密集型程序只會(huì)在一個(gè)單CPU上面運(yùn)行)。

3. multiprocessing pool使用例子

對(duì)Pool對(duì)象調(diào)用join()方法會(huì)等待所有子進(jìn)程執(zhí)行完畢,調(diào)用join()之前必須先調(diào)用close(),讓其不再接受新的Process了

#coding=utf-8import loggingimport timefrom multiprocessing import Poollogging.basicConfig(level=logging.INFO, filename='logger.log')class Point:  def __init__(self, x = 0, y= 0):    self.x = x    self.y = y  def __str__(self):    return "(%d, %d)" % (self.x, self.y)def fun1(point):  point.x = point.x + 3  point.y = point.y + 3  time.sleep(1)  return pointdef fun2(x):  time.sleep(1)  logging.info(time.ctime() + ", fun2 input x:" + str(x))  return x * xif __name__ == '__main__':  pool = Pool(4)  #test1  mylist = [x for x in range(10)]  ret = pool.map(fun2, mylist)  print ret  #test2  mydata = [Point(x, y) for x in range(3) for y in range(2)]  res = pool.map(fun1, mydata)  for i in res:    print str(i)  #end  pool.close()  pool.join()  print "end"

運(yùn)行結(jié)果:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
(3, 3)
(3, 4)
(4, 3)
(4, 4)
(5, 3)
(5, 4)
end

4. 參考

Python 多進(jìn)程 multiprocessing.Pool類詳解
Python 多線程和多進(jìn)程編程總結(jié)
Python的全局鎖問題

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python進(jìn)程與線程操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》、《Python+MySQL數(shù)據(jù)庫(kù)程序設(shè)計(jì)入門教程》及《Python常見數(shù)據(jù)庫(kù)操作技巧匯總》

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 日本aaaa片毛片免费观蜜桃 | 中文字幕在线观看视频一区 | 中文字幕精品一区久久久久 | 男女无遮挡羞羞视频 | 康妮卡特欧美精品一区 | 日韩精品免费看 | 欧美四级在线观看 | 久久久久久免费免费 | 免费观看一级欧美大 | 免费看一级片 | 欧美一级精品片在线看 | 成年免费视频黄网站在线观看 | 日韩伦理电影免费观看 | 欧美高清一级片 | 福利在线小视频 | 怦然心动50免费完整版 | 国产精品自拍99 | 99re久久最新地址获取 | 日韩激情 | 欧美精品一区二区久久 | 婷婷亚洲一区二区三区 | 精品一区二区三区免费毛片 | 毛片电影网址 | 国产精品久久久久一区二区 | 369看片你懂的小视频在线观看 | 日韩视频一区 | 国产精品视频导航 | 免费看成年人网站 | 久久国产成人午夜av浪潮 | 又黄又爽又色无遮挡免费 | 亚洲人成在线播放网站 | 色播一区 | 成人毛片在线免费观看 | 九色中文字幕 | 国产中文99视频在线观看 | 日日摸夜夜骑 | 欧美精品电影一区 | 亚洲99 | 综合日韩欧美 | 一级毛片真人免费播放视频 | 露脸各种姿势啪啪的清纯美女 |