程序與執行緒

2022-05-08 18:21:16 字數 2048 閱讀 4147

執行緒:作業系統能夠進行運算排程的最小單位。它被包含在程序之中,是程序中的實際運作單位。一條執行緒指的是程序中乙個單一順序的控制流,乙個程序可以併發多個執行緒,每條執行緒並行執行不同的任務。

程序:以乙個整體的形式暴露給作業系統管理,裡面包含對各個資源的呼叫,記憶體的管理,網路介面的呼叫等,對各種資源管理的集合。

程序與執行緒的區別:

1、執行緒共享記憶體空間,程序的記憶體是獨立的;

2、同乙個程序的執行緒之間可以直接交流,兩個程序想通訊,必須通過中間**來實現;

3、建立新執行緒很簡單,建立新程序需要對其父程序進行一次轉殖;

4、乙個執行緒可以控制和操作同一程序裡的其它執行緒,但是程序只能操作子程序。

cpu    工廠

程序    車間(工廠的電力有限,一次只能給乙個車間使用:單個cpu一次只能執行乙個任務)

執行緒    工人(乙個車間裡有很多任務人:乙個程序裡可以有很多執行緒)

threading.current_thread() 返回當前執行緒

threading.active_count() 返回當前活動執行緒的個數

多執行緒的基本使用

"""

方法一"""

defsay(word, second):

print

word

time.sleep(second)

t1 = threading.thread(target=say, args=("

i'm t1!

", 2))

t2 = threading.thread(target=say, args=("

i'm t2!

", 6))

"""方法二

"""class

mythread(threading.thread):

def__init__

(self, word, second):

super(mythread, self).

__init__

() self.word =word

self.second =second

defrun(self):

print

self.word

time.sleep(self.second)

t1 = mythread("

i'm t1!

", 2)

t2 = mythread("

i'm t2!

", 6)

t1.start()

t2.start()

計算所有子執行緒總共執行的時間

class

mythread(threading.thread):

def__init__

(self, word, second):

super(mythread, self).

__init__

() self.word =word

self.second =second

defrun(self):

print

self.word

time.sleep(self.second)

thread_list =

begin_time =time.time()

for i in range(10):

t = mythread("

i'm t%s

" %i, i)

t.start()

for thread in

thread_list:

thread.join() # 等待執行緒執行結束

print

'所有執行緒總共執行{}秒

'.format(time.time() -begin_time)i'

m t0

i'm t1

i'm t2

i'm t3

i'm t4

i'm t5

i'm t6

i'm t7

i'm t8

i'm t9

所有執行緒總共執行9.01185703278秒

程序與執行緒

程序 process 管理單元,管理分配應用程式的資料,的記憶體空間.執行緒 thread 執行單元,執行緒負責執行乙個預先編排好的 段,執行 棧是基於執行緒的.乙個應用程式啟動的時候,程序自動建立,並且會預設建立主線程,主線程負責執行main 方法.thread t new thread new ...

程序與執行緒

程序 是擁有資源的實體,包括 1。乙個程序有乙個虛擬位址空間,不同程序位於不同的 虛擬位址空間中。程序之間若要通訊,必須通過作業系統 的功能呼叫 ipc 2。程序擁有其他資源,例如開啟的檔案和i o裝置。程序結束時,作業系統會自動釋放該程序擁有的所有資源。例如,如果 open乙個檔案而不close它...

程序與執行緒

程序包括 1 私有的虛位址空間 2 可執行程式 與資料 3 開啟系統資源列表控制代碼 4 安全訪問標誌 5 程序id 6 至少有乙個執行執行緒 執行緒包括 1 一組cpu暫存器狀態 2 兩個堆疊 系統態與使用者態 3 tls 執行緒區域性儲存區 4 執行緒id 5 安全特性 因此程序是不活潑的,它從...