国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python實現線程池的方法

python實現線程池的方法

2020-07-18 11:09liujian0616 Python

這篇文章主要介紹了python實現線程池的方法,實例分析了Python線程池的原理與相關實現技巧,需要的朋友可以參考下

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

原理:建立一個任務隊列,然多個線程都從這個任務隊列中取出任務然后執行,當然任務隊列要加鎖,詳細請看代碼

文件名:thrd_pool.py 系統環境:ubuntu linux & python2.6

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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

執行方式:python thrd_pool.py

執行結果:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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)

希望本文所述對大家的Python程序設計有所幫助。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 羞羞网址 | 国内精品一区二区三区 | 欧美片网站免费 | 99久久久国产精品 | 国产一级在线免费观看 | 欧美操穴 | 国产精品美女久久久久久免费 | 自拍偷拍亚洲欧美 | 成人黄色短视频在线观看 | 狠狠干av | 日韩欧美一区在线 | 伊人网电影| 成年人免费在线播放视频 | 久久精品亚洲成在人线av网址 | 日韩精品一二三区 | 欧美一级黄色片免费看 | 欧美一区二区三区黄 | 国产伦精品一区二区三区四区视频 | 在线观看三区 | 99免费视频| 久久影院久久 | 久久久天堂国产精品女人 | 久久手机免费视频 | 午夜影院a | 国产中文字幕在线 | 中文字幕一区二区三区不卡 | 米奇影视7777 | 中文字幕 日韩有码 | 国产高清在线精品一区二区三区 | 黄色一级片免费 | 免费的av网站 | 91在线高清 | 午夜在线| 久久免费一区 | 久久人人爽爽爽人久久久 | 91精品国产综合久久香蕉最新版 | 91网页版 | 日韩毛片免费在线观看 | 亚洲精品中文字幕在线观看 | 欧美国产激情二区三区 | 在线观看中文字幕 |