初試python多執行緒

2021-09-02 17:54:45 字數 1689 閱讀 2148

在學習多執行緒之前,我來說說我對程序和執行緒的理解。

什麼是程序:

電腦程式是磁碟中可執行的二進位制(或其他型別)的資料。他們只有在被讀取到記憶體中、被作業系統呼叫的時候才可以他們的生命週期。程序是程式的一次執行,每個程序都有自己的位址空間、記憶體、資料線,以及其他記錄其運動軌跡的輔助資料。作業系統管理在上面執行的所有程序,並為這些程序公平地分配時間。

什麼是執行緒:

執行緒與程序有些相似,他們不同的是,所有的執行緒都執行在同乙個程序中,共享相同的執行環境。可以想象成是在主程序或「主線程」中進行的「迷你執行緒」。

話不多說直接上例子:

from time import sleep,ctime

import threading '''引入執行緒模組'''

def music(func,loop):

for i in range(loop):

print('i was listenning to %s! %s' %(func,ctime()))

sleep(2)

def movie(func,loop):

for i in range(loop):

print('i was at the %s!%s' %(func,ctime()))

sleep(5)

#建立執行緒組

threads = '''建立執行緒模組,用來裝載執行緒'''

#建立執行緒t1,並新增到執行緒陣列

t1 = threading.thread(target=music,args=('愛情買賣',2)) '''通過threading.thread()來建立執行緒,args是要傳入的引數'''

#建立執行緒t2,並新增到執行緒陣列

t2 = threading.thread(target=movie,args=('阿凡達',2))

if __name__ == '__main__':

#啟動執行緒

for t in threads: '''通過for迴圈遍歷threads陣列中裝載的執行緒;start()開始執行緒活動,join()等待線'''

t.start()

#守護執行緒

for t in threads:

t.join()

print('all end: %s'%ctime())

執行結果:

c:\python35\python.exe c:/users/sun/pycharmprojects/新建資料夾/執行緒.py

i was listenning to 愛情買賣! thu dec  6 10:02:52 2018

i was at the 阿凡達!thu dec  6 10:02:52 2018

i was listenning to 愛情買賣! thu dec  6 10:02:54 2018

i was at the 阿凡達!thu dec  6 10:02:57 2018

all end: thu dec  6 10:03:02 2018

process finished with exit code 0

從執行結果可以看出,兩個字執行緒(music,movie)同時啟動於10:02:52,直到所有執行緒結束於10:03:02,總耗時10秒。movie的兩次電影迴圈共需要10秒,music的歌曲迴圈需要4秒,執行結果可以看出兩個執行緒達到了並行工作。

初試C 多執行緒 跨執行緒訪問控制項

c 裡建立執行緒的方式是 thread t new thread new threadstart this.dosomething t.start 裡面的dosomething是主線程裡的乙個函式,在裡面做自己需要的操作。那我就建了乙個winform程式來試一下,畫了乙個button1,乙個text...

python多執行緒 python多執行緒

通常來說,多程序適用於計算密集型任務,多執行緒適用於io密集型任務,如網路爬蟲。關於多執行緒和多程序的區別,請參考這個 下面將使用python標準庫的multiprocessing包來嘗試多執行緒的操作,在python中呼叫多執行緒要使用multiprocessing.dummy,如果是多程序則去掉...

python多執行緒詳解 Python多執行緒詳解

前言 由於最近的工作中一直需要用到python去處理資料,而在面對大量的資料時,python多執行緒的優勢就展現出來了。因而藉此機會,盡可能詳盡地來闡述python多執行緒。但對於其更底層的實現機制,在此不做深究,僅是對於之前的一知半解做個補充,也希望初學者能夠通過這篇文章,即便是照葫蘆畫瓢,也能夠...