首頁  >  文章  >  後端開發  >  python3多執行緒

python3多執行緒

(*-*)浩
(*-*)浩原創
2019-09-02 14:40:153677瀏覽

python3多執行緒

多執行緒類似於同時執行多個不同程序,多執行緒運行有以下優點:(建議學習:web前端影片教學

使用執行緒可以把佔據長時間的程式中的任務放到後台去處理。

使用者介面可以更吸引人,例如使用者點擊了一個按鈕去觸發某些事件的處理,可以彈出一個進度條來顯示處理的進度。

程式的運作速度可能加快。

在一些等待的任務實作上如使用者輸入、檔案讀寫和網路收發資料等,執行緒就比較有用了。在這種情況下我們可以釋放一些珍貴的資源如記憶體佔用等等。

每個獨立的執行緒有一個程式運行的入口、順序執行序列和程式的出口。但是執行緒不能夠獨立執行,必須依存在應用程式中,由應用程式提供多個執行緒執行控制。

每個執行緒都有他自己的一組CPU暫存器,稱為執行緒的上下文,該上下文反映了執行緒上次運行該執行緒的CPU暫存器的狀態。

指令指標和堆疊指標暫存器是執行緒上下文中兩個最重要的暫存器,執行緒總是在進程得到上下文中運行的,這些位址都用於標誌擁有執行緒的進程位址空間中的記憶體。

線程可以被搶佔(中斷)。

在其他執行緒正在執行時,執行緒可以暫時擱置(也稱為睡眠) -- 這就是執行緒的退讓。

執行緒可以分為:

核心執行緒:由作業系統核心建立和撤銷。

使用者執行緒:不需要核心支援而在使用者程式中實現的執行緒。

Python3 執行緒中常用的兩個模組為:

_thread

threading(建議使用)

thread 模組已被廢棄。使用者可以使用 threading 模組代替。所以,在 Python3 中不能再使用"thread" 模組。為了相容性,Python3 將 thread 重新命名為 "_thread"。

開始學習Python線程

Python中使用線程有兩種方式:函數或用類別來包裝線程物件。

函數式:呼叫 _thread 模組中的start_new_thread()函數來產生新執行緒。語法如下:

_thread.start_new_thread ( function, args[, kwargs] )

參數說明:

function - 執行緒函數。

args - 傳遞給執行緒函數的參數,他必須是個tuple類型。

kwargs - 可選參數。

實例:

#!/usr/bin/python3

import _thread
import time

# 为线程定义一个函数
def print_time( threadName, delay):
   count = 0
   while count < 5:
      time.sleep(delay)
      count += 1
      print ("%s: %s" % ( threadName, time.ctime(time.time()) ))

# 创建两个线程
try:
   _thread.start_new_thread( print_time, ("Thread-1", 2, ) )
   _thread.start_new_thread( print_time, ("Thread-2", 4, ) )
except:
   print ("Error: 无法启动线程")

while 1:
   pass

以上是python3多執行緒的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn