基礎知識七 Python實現執行緒池之執行緒處理物件

2021-10-05 18:37:27 字數 1377 閱讀 1822

繼第五節實現了簡單的執行緒安全佇列,第六節實現了同步、非同步任務物件後本節我們繼續實現消費任務佇列,處理任務物件的執行緒處理物件。

class

threadprocess

(threading.thread)

:def

__init__

(self, task_queue,

*args,

**kwargs)

:"""

執行緒處理方法初始化

:param task_queue:

:param args:

:param kwargs:

"""super

(threadprocess, self)

.__init__(

*args,

**kwargs)

self.dismiss_flag = threading.event(

)# 任務停止的標記

self.task_queue = task_queue

self.args = args

self.kwargs = kwargs

defrun(self)

:"""

執行緒執行方法

:return:

"""while

true

:# 執行緒停止標誌設定則停止執行

if self.dismiss_flag.is_set():

break

# task物件是否是task的例項

task = self.task_queue.pop()if

notisinstance

(task, task)

:continue

print

('task id:%d'

% task.id)

# print(type(task))

result = task.

callable

(*task.args,

**task.kwargs)

# 如果是非同步任務 設定返回結果

ifisinstance

(task, asynctask)

:print

('set result:%d'

% task.id)

task.set_result(result)

def__dismiss

(self)

: self.dismiss_flag.

set(

)def

stop

(self)

:"""

執行緒停止方法

:return:

"""self.__dismiss(

)

python學習七(基礎知識)

裝飾器生成器 迭代器裝飾器 decorator 或者稱為包裝器,是對函式的一種包裝。它能使函式的功能得到擴充,而同時不用修改函式本身的 它能夠增加函式執行前 執行後的行為,而不需對呼叫函式的 做任何改變 def showtime f definner start time.time f end ti...

MySQL基礎知識七

1.事務的acid原則 原子性 atomic 一致性 consist 隔離性 isolated 永續性 durable 2.事務就是將一組sql語句放在同一批次內去執行 3.mysql事務處理只支援innodb和bdb資料表型別 4.使用set語句來改變自動提交模式 set autocommit 0...

CSS基礎知識(七)

transform translate rotate scale skew matrix 值 rotate 30deg 把元素順時針旋轉 30 度。值 translate 50px,100px 把元素從左側移動 50 畫素,從頂端移動 100 畫素。值 scale 2,4 把寬度轉換為原始尺寸的 2...