最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2018年09月07日 14:04:03   作者:旭東的博客  
這篇文章主要介紹了Python多進(jìn)程池 multiprocessing Pool用法,結(jié)合實(shí)例形式分析了多進(jìn)程池 multiprocessing Pool相關(guān)概念、原理及簡(jiǎn)單使用技巧,需要的朋友可以參考下

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

1. 背景

由于需要寫(xiě)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語(yǔ)言實(shí)現(xiàn)部分在完全并行執(zhí)行時(shí)并不是線程安全的。
實(shí)際上,解釋器被一個(gè)全局解釋器鎖保護(hù)著,它確保任何時(shí)候都只有一個(gè)Python線程執(zhí)行。
GIL最大的問(wèn)題就是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-8
import logging
import time
from multiprocessing import Pool
logging.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 point
def fun2(x):
  time.sleep(1)
  logging.info(time.ctime() + ", fun2 input x:" + str(x))
  return x * x
if __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類(lèi)詳解
Python 多線程和多進(jìn)程編程總結(jié)
Python的全局鎖問(wèn)題

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

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Numpy中的repeat函數(shù)使用

    Numpy中的repeat函數(shù)使用

    Numpy是Python強(qiáng)大的數(shù)學(xué)計(jì)算庫(kù),和Scipy一起構(gòu)建起Python科學(xué)計(jì)算生態(tài),在本節(jié)下面我們重點(diǎn)介紹下repeat函數(shù)的用法,需要的朋友可以參考下
    2022-11-11
  • Pytorch 如何訓(xùn)練網(wǎng)絡(luò)時(shí)調(diào)整學(xué)習(xí)率

    Pytorch 如何訓(xùn)練網(wǎng)絡(luò)時(shí)調(diào)整學(xué)習(xí)率

    這篇文章主要介紹了Pytorch 如何訓(xùn)練網(wǎng)絡(luò)時(shí)調(diào)整學(xué)習(xí)率的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 利用Python實(shí)現(xiàn)每日新聞推送

    利用Python實(shí)現(xiàn)每日新聞推送

    這篇文章主要為大家詳細(xì)介紹了如何使用Python編寫(xiě)簡(jiǎn)單的邏輯,通過(guò)調(diào)用API接口實(shí)現(xiàn)每日新聞推送功能,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-06-06
  • python中二維陣列的變換實(shí)例

    python中二維陣列的變換實(shí)例

    這篇文章主要介紹了python中二維陣列的變換實(shí)例,通過(guò)對(duì)比兩種不同的方法分析了二維陣列變換的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2014-10-10
  • Python 虛擬空間的使用代碼詳解

    Python 虛擬空間的使用代碼詳解

    這篇文章主要介紹了Python 虛擬空間的使用,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • python與c語(yǔ)言的語(yǔ)法有哪些不一樣的

    python與c語(yǔ)言的語(yǔ)法有哪些不一樣的

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python與c語(yǔ)法區(qū)別的相關(guān)內(nèi)容,有興趣的朋友們可以參考下。
    2020-09-09
  • Python中如何檢查字符串是否包含列表中的元素

    Python中如何檢查字符串是否包含列表中的元素

    在數(shù)據(jù)預(yù)處理或糾錯(cuò)的過(guò)程中可能會(huì)用到對(duì)列表中是否含有我們需要的字符串的判斷,下面這篇文章主要給大家介紹了關(guān)于Python中如何檢查字符串是否包含列表中的元素的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • python 求1-100之間的奇數(shù)或者偶數(shù)之和的實(shí)例

    python 求1-100之間的奇數(shù)或者偶數(shù)之和的實(shí)例

    今天小編就為大家分享一篇python 求1-100之間的奇數(shù)或者偶數(shù)之和的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • Sanic框架流式傳輸操作示例

    Sanic框架流式傳輸操作示例

    這篇文章主要介紹了Sanic框架流式傳輸操作,結(jié)合實(shí)例形式分析了Sanic通過(guò)流請(qǐng)求與響應(yīng)傳輸操作相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • Python 基礎(chǔ)教程之包和類(lèi)的用法

    Python 基礎(chǔ)教程之包和類(lèi)的用法

    這篇文章主要介紹了Python 基礎(chǔ)教程之包和類(lèi)的用法的相關(guān)資料,需要的朋友可以參考下
    2017-02-02

最新評(píng)論

眉山市| 同仁县| 甘孜县| 天峨县| 禄劝| 易门县| 台江县| 钦州市| 阜阳市| 巴彦淖尔市| 永福县| 阿拉善左旗| 万载县| 四子王旗| 喀什市| 万盛区| 合川市| 鄂托克前旗| 勃利县| 清镇市| 绥化市| 吴川市| 万荣县| 合肥市| 皮山县| 昆山市| 台江县| 凉山| 五寨县| 洛阳市| 雅安市| 西安市| 陈巴尔虎旗| 布拖县| 九寨沟县| 达孜县| 庆元县| 松江区| 杭州市| 绩溪县| 灵山县|