国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python中threading超線程用法實例分析

2020-01-04 19:15:26
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了python中threading超線程用法,實例分析了Python中threading模塊的相關使用技巧,需要的朋友可以參考下

本文實例講述了python中threading超線程用法。分享給大家供大家參考。具體分析如下:

threading基于Java的線程模型設計。鎖(Lock)和條件變量(Condition)在Java中是對象的基本行為(每一個對象都自帶了鎖和條件變量),而在Python中則是獨立的對象。Python Thread提供了Java Thread的行為的子集;沒有優先級、線程組,線程也不能被停止、暫停、恢復、中斷。Java Thread中的部分被Python實現了的靜態方法在threading中以模塊方法的形式提供。

threading 模塊提供的常用方法:

threading.currentThread(): 返回當前的線程變量。

threading.enumerate(): 返回一個包含正在運行的線程的list。正在運行指線程啟動后、結束前,不包括啟動前和終止后的線程。

threading.activeCount(): 返回正在運行的線程數量,與len(threading.enumerate())有相同的結果。

threading模塊提供的類:

Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer, local.

Thread是線程類,與Java類似,有兩種使用方法,直接傳入要運行的方法或從Thread繼承并覆蓋run():

 

 
  1. # encoding: UTF-8 
  2. import threading 
  3. # 方法1:將要執行的方法作為參數傳給Thread的構造方法 
  4. def func(): 
  5. print 'func() passed to Thread' 
  6. t = threading.Thread(target=func) 
  7. t.start() 
  8. # 方法2:從Thread繼承,并重寫run() 
  9. class MyThread(threading.Thread): 
  10. def run(self): 
  11. print 'MyThread extended from Thread' 
  12. t = MyThread() 
  13. t.start() 

構造方法:

Thread(group=None, target=None, name=None, args=(), kwargs={})

group: 線程組,目前還沒有實現,庫引用中提示必須是None;

target: 要執行的方法;

name: 線程名;

args/kwargs: 要傳入方法的參數。

實例方法:

isAlive(): 返回線程是否在運行。正在運行指啟動后、終止前。

get/setName(name): 獲取/設置線程名。

is/setDaemon(bool): 獲取/設置是否守護線程。初始值從創建該線程的線程繼承。當沒有非守護線程仍在運行時,程序將終止。

start(): 啟動線程。

join([timeout]): 阻塞當前上下文環境的線程,直到調用此方法的線程終止或到達指定的timeout(可選參數)。

一個使用join()的例子:

 

 
  1. # encoding: UTF-8 
  2. import threading 
  3. import time 
  4. def context(tJoin): 
  5. print 'in threadContext.' 
  6. tJoin.start() 
  7. # 將阻塞tContext直到threadJoin終止。 
  8. tJoin.join() 
  9. # tJoin終止后繼續執行。 
  10. print 'out threadContext.' 
  11. def join(): 
  12. print 'in threadJoin.' 
  13. time.sleep(1
  14. print 'out threadJoin.' 
  15. tJoin = threading.Thread(target=join) 
  16. tContext = threading.Thread(target=context, args=(tJoin,)) 
  17. tContext.start() 

運行結果:

in threadContext.

in threadJoin.

out threadJoin.

out threadContext.

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湖州市| 浦县| 通州区| 沁水县| 长兴县| 长顺县| 清新县| 新蔡县| 察哈| 繁昌县| 沅陵县| 若羌县| 临江市| 岳阳市| 高唐县| 上饶市| 阜阳市| 桦甸市| 翼城县| 襄垣县| 乐东| 湛江市| 江油市| 哈尔滨市| 巨野县| 治县。| 扎赉特旗| 宿州市| 建德市| 乐安县| 固始县| 临颍县| 高陵县| 来宾市| 仙桃市| 崇仁县| 噶尔县| 花垣县| 旬阳县| 井陉县| 大石桥市|