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

python實(shí)現(xiàn)線程池的方法

 更新時(shí)間:2015年06月30日 09:53:45   作者:liujian0616  
這篇文章主要介紹了python實(shí)現(xiàn)線程池的方法,實(shí)例分析了Python線程池的原理與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了python實(shí)現(xiàn)線程池的方法。分享給大家供大家參考。具體如下:

原理:建立一個(gè)任務(wù)隊(duì)列,然多個(gè)線程都從這個(gè)任務(wù)隊(duì)列中取出任務(wù)然后執(zhí)行,當(dāng)然任務(wù)隊(duì)列要加鎖,詳細(xì)請(qǐng)看代碼

文件名:thrd_pool.py 系統(tǒng)環(huán)境:ubuntu linux & python2.6

import threading
import time
import signal
import os
class task_info(object):
  def __init__(self):
    self.func = None
    self.parm0 = None
    self.parm1 = None
    self.parm2 = None
class task_list(object):
  def __init__(self):
    self.tl = []
    self.mutex = threading.Lock()
    self.sem = threading.Semaphore(0)
  def append(self, ti):
    self.mutex.acquire()
    self.tl.append(ti)
    self.mutex.release()
    self.sem.release()
  def fetch(self):
    self.sem.acquire()
    self.mutex.acquire()
    ti = self.tl.pop(0)    
    self.mutex.release()
    return ti
class thrd(threading.Thread):
  def __init__(self, tl):
    threading.Thread.__init__(self)
    self.tl = tl
  def run(self):
    while True:
      tsk = self.tl.fetch()
      tsk.func(tsk.parm0, tsk.parm1, tsk.parm2)  
class thrd_pool(object):
  def __init__(self, thd_count, tl):
    self.thds = []
    for i in range(thd_count):
      self.thds.append(thrd(tl))
  def run(self):
    for thd in self.thds:
      thd.start()
def func(parm0=None, parm1=None, parm2=None):
  print 'count:%s, thrd_name:%s'%(str(parm0), threading.currentThread().getName())
def cleanup(signo, stkframe):
  print ('Oops! Got signal %s', signo)  
  os._exit(0)
if __name__ == '__main__':
  signal.signal(signal.SIGINT, cleanup)
  signal.signal(signal.SIGQUIT, cleanup)
  signal.signal(signal.SIGTERM, cleanup)
  tl = task_list()
  tp = thrd_pool(6, tl)
  tp.run()
  count = 0
  while True:
    ti = task_info()
    ti.parm0 = count
    ti.func = func
    tl.append(ti)
    count += 1
    time.sleep(2)
  pass

執(zhí)行方式:python thrd_pool.py

執(zhí)行結(jié)果:

count:0, thrd_name:Thread-1
count:1, thrd_name:Thread-2
count:2, thrd_name:Thread-3
count:3, thrd_name:Thread-4
count:4, thrd_name:Thread-5
count:5, thrd_name:Thread-1
count:6, thrd_name:Thread-6
count:7, thrd_name:Thread-2
count:8, thrd_name:Thread-3
count:9, thrd_name:Thread-4
count:10, thrd_name:Thread-5
count:11, thrd_name:Thread-1
count:12, thrd_name:Thread-6
count:13, thrd_name:Thread-2
count:14, thrd_name:Thread-3
('Oops! Got signal %s', 15)

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

相關(guān)文章

  • 10款最佳Python開發(fā)工具推薦,每一款都是神器

    10款最佳Python開發(fā)工具推薦,每一款都是神器

    這篇文章主要介紹了10款最佳Python開發(fā)工具推薦,每一款都是神器,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2020-10-10
  • Python初識(shí)邏輯與if語(yǔ)句及用法大全

    Python初識(shí)邏輯與if語(yǔ)句及用法大全

    這篇文章主要介紹了Python初識(shí)邏輯與if語(yǔ)句,文中給大家提到了if語(yǔ)句功能及用法講解,需要的朋友可以參考下
    2021-08-08
  • 對(duì)Python中 \r, \n, \r\n的徹底理解

    對(duì)Python中 \r, \n, \r\n的徹底理解

    這篇文章主要介紹了對(duì)Python中 \r, \n, \r\n的徹底理解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • 如何使用python對(duì)圖片進(jìn)行批量壓縮詳解

    如何使用python對(duì)圖片進(jìn)行批量壓縮詳解

    對(duì)于圖片強(qiáng)行被定義高和寬會(huì)變形,我們希望圖片被改變大小后,比例保持不變,完成對(duì)圖片的壓縮,下面這篇文章主要給大家介紹了關(guān)于如何使用python對(duì)圖片進(jìn)行批量壓縮的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • 利用python實(shí)現(xiàn)漢諾塔游戲

    利用python實(shí)現(xiàn)漢諾塔游戲

    這篇文章主要為大家詳細(xì)介紹了利用python實(shí)現(xiàn)漢諾塔游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Python?操作?MongoDB數(shù)據(jù)庫(kù)的方法(非?ODM)

    Python?操作?MongoDB數(shù)據(jù)庫(kù)的方法(非?ODM)

    這篇文章主要介紹了Python?操作?MongoDB?----非?ODM的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • numpy.linspace 生成等差數(shù)組的方法

    numpy.linspace 生成等差數(shù)組的方法

    今天小編就為大家分享一篇numpy.linspace 生成等差數(shù)組的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python 查找list中的某個(gè)元素的所有的下標(biāo)方法

    Python 查找list中的某個(gè)元素的所有的下標(biāo)方法

    今天小編就為大家分享一篇Python 查找list中的某個(gè)元素的所有的下標(biāo)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Django返回HTML文件的實(shí)現(xiàn)方法

    Django返回HTML文件的實(shí)現(xiàn)方法

    這篇文章主要介紹了Django返回HTML文件的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Python內(nèi)置函數(shù)reversed()用法分析

    Python內(nèi)置函數(shù)reversed()用法分析

    這篇文章主要介紹了Python內(nèi)置函數(shù)reversed()用法,結(jié)合實(shí)例形式分析了reversed()函數(shù)的功能及針對(duì)序列元素相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下
    2018-03-03

最新評(píng)論

泊头市| 民乐县| 五指山市| 武安市| 马公市| 清水河县| 凤翔县| 六枝特区| 梁平县| 乌拉特后旗| 瓦房店市| 海淀区| 炎陵县| 葵青区| 五寨县| 社旗县| 屯昌县| 陆河县| 西充县| 中江县| 米易县| 西昌市| 定陶县| 石首市| 吉安市| 韶山市| 汾阳市| 卓尼县| 伊川县| 伊金霍洛旗| 紫阳县| 文成县| 宽城| 共和县| 潜山县| 樟树市| 张家川| 高要市| 循化| 海门市| 会理县|