激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

服務(wù)器之家 - 腳本之家 - Python - Python實現(xiàn)線程池代碼分享

Python實現(xiàn)線程池代碼分享

2020-07-16 10:52Python教程網(wǎng) Python

這篇文章主要介紹了Python實現(xiàn)線程池代碼分享,本文直接給出實例代碼,需要的朋友可以參考下

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

?
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚州综合 | 美女亚洲综合 | 99re色| 一区二区三区欧洲 | 日韩999| 免费看日韩片 | 国产女同疯狂激烈互摸 | 老女人碰碰在线碰碰视频 | 91看片儿 | 日韩精品网站在线观看 | 久久久久久久久久久亚洲 | 中文字幕 亚洲一区 | 久久久午夜电影 | 欧美日韩免费在线观看视频 | 青青草在线免费观看 | 国产成人精品自拍视频 | 黄色网址在线播放 | 久久综合九色综合久久久精品综合 | 成年人视频在线免费观看 | 亚洲成a| 一区二区精品视频在线观看 | 亚洲人成电影在线 | 国产免费最爽的乱淫视频a 午夜精品久久久久久久99热浪潮 | 色99999| 在线免费观看日韩视频 | 国产精品自拍99 | 在线成人一区 | 日本a级免费| 免费看综艺策驰影院 | 久久精品日产高清版的功能介绍 | 成人毛片100免费观看 | 精品国产一区二区在线观看 | 成人三级电影在线 | 黄色特级一级片 | 午夜91视频| 一分钟免费观看完整版电影 | 久久久久久久久久久影视 | 有一婷婷色 | 午夜视| 成人在线观看免费爱爱 | 国产999视频在线观看 |