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

首頁 > 編程 > Python > 正文

Python多線程threading和multiprocessing模塊實例解析

2020-02-22 23:02:14
字體:
來源:轉載
供稿:網友

本文研究的主要是Python多線程threading和multiprocessing模塊的相關內容,具體介紹如下。

線程是一個進程的實體,是由表示程序運行狀態的寄存器(如程序計數器、棧指針)以及堆棧組成,它是比進程更小的單位。
線程是程序中的一個執行流。一個執行流是由CPU運行程序代碼并操作程序的數據所形成的。因此,線程被認為是以CPU為主體的行為。

線程不包含進程地址空間中的代碼和數據,線程是計算過程在某一時刻的狀態。所以,系統在產生一個線程或各個線程之間切換時,負擔要比進程小得多。

線程是一個用戶級的實體,線程結構駐留在用戶空間中,能夠被普通的用戶級函數直接訪問。

一個線程本身不是程序,它必須運行于一個程序(進程)之中。因此,線程可以定義為一個程序中的單個執行流。

多線程是指一個程序中包含多個執行流,多線程是實現并發的一種有效手段。一個進程在其執行過程中,可以產生多個線程,形成多個執行流。每個執行流即每個線程也有它自身的產生、存在和消亡的過程。

多線程程序設計的含義就是可以將程序任務分成幾個并行的子任務。

線程的狀態圖:

Python中常使用的線程模塊

thread(低版本使用的),threading Queue multiprocessing

threading

thread模塊是Python低版本中使用的,高版本中被threading代替了。threading模塊提供了更方便的API來操作線程。

threading.Thread

Thread是threading模塊中最重要的類之一,可以使用它來創建線程。創建新的線程有兩種方法:

方法一:直接創建threading.Thread類的對象,初始化時將可調用對象作為參數傳入。 方法二:通過繼承Thread類,重寫它的run方法。

Thread類的構造方法:

__init__(group=None, target=None, name=None, args=(), kwargs=None, verbose=None)

參數說明:

group:線程組,目前還沒有實現,庫引用中提示必須是None。
target:要執行的方法;
name:線程名;
args/kwargs:要傳入方法的參數。

Thread類擁有的實例方法:

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

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

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

start():啟動線程。

join([timeout]):阻塞當前上下文環境的線程,直到調用此方法的線程終止或到達指定的等待時間timeout(可選參數)。即當前的線程要等調用join()這個方法的線程執行完,或者是達到規定的時間。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和平县| 德化县| 十堰市| 武穴市| 武义县| 宜宾县| 哈尔滨市| 师宗县| 青铜峡市| 思茅市| 洪雅县| 宜州市| 惠东县| 五河县| 海宁市| 文水县| 同仁县| 循化| 大方县| 神木县| 长汀县| 类乌齐县| 白朗县| 大宁县| 沈丘县| 德江县| 隆昌县| 玉树县| 平度市| 镇安县| 普兰县| 仙桃市| 仁寿县| 永定县| 晋州市| 元谋县| 泗阳县| 泸定县| 门头沟区| 英山县| 新化县|