python3多執行緒知識點總結

2022-10-04 16:06:28 字數 1639 閱讀 9639

多執行緒類似於同時執行多個不同程式,多執行緒執行有如下優點:

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

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

程式的執行速度可能加快。

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

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

每個執行緒都有他自己的一組cpu暫存器,稱為執行緒的上下文,該上程式設計客棧下文反映了執行緒上次執行該執行緒的cpu暫存器的狀態。

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

執行緒可以被搶占(中斷)。

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

執行緒可以分為:

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

_thread

threading(推薦使用)

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

開始學習python執行緒

python中使用執行緒有兩種方式:函式或者用類來包裝執行緒物件。

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

_thread.start_new_www.cppcns.comthread ( 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多執行緒的詳細內容,感謝大家對我們的支援。

本文標題: python3多執行緒知識點總結

本文位址: /jiaoben/python/276591.html

多執行緒知識點總結

多執行緒的問題主要圍繞3個問題處理 1.原子性,2.可見性,3.有序性 1.原子性,不可被其他執行緒打斷的操作。如read.write sychronized 2.可見性 一條執行緒修改了某值,新值對其他執行緒立即可知 普通變數是通過主記憶體完成多執行緒的共享,因此在多執行緒的情況下,很多髒資料。v...

多執行緒 知識點總結二

1.sleep 和wait 方法的區別?sleep 必須指時間 不釋放鎖。wait 可以不指定時間,也可以指定時間 釋放鎖。2.為什麼wait notify notifyall 等方法都定義在object類中?wait 等待,notify 喚醒單個執行緒,notifyall 喚醒所有的執行緒 這些方...

python3小知識點

a a 3 a 3,b c a.extend d 6 a 3,b c d 6 format 698.25 698.2 format 698.26 698.3 把型別物件當作函式一樣呼叫執行 class a def call 根據檔名自動匯入模組,和re模組是一樣的,模組中有什麼方法就可以使用m直接呼...