day9 併發多執行緒效果演示

2022-09-05 19:51:11 字數 1041 閱讀 6630

我們說單核的cpu同時執行乙個任務,但是給我們的乙個感覺是它可以實現併發,因為cpu速度太快了。它是怎麼實現的呢?就是上下文切換,它不是輪詢著切換的。它是按照優先順序來進行切換的,並不是從頭到尾的,中間的切換是有優先順序的。我們就可以利用這個優勢,因為它的運算速度太快了,但是我們只開啟了乙個qq,啟動乙個執行緒的話,他能得到執行的時間就是有限的。那cpu給我們的感覺同時執行多個任務,那我就可以併發批量操作某個動作。

import threading,time

#定義每個執行緒要執行的函式

def run2(n):

print("task",n)

time.sleep(2)

#生成乙個執行緒例項

t1 = threading.thread(target=run2,args=("t1",)) #args後面乙個引數必須加逗號,要不然會把它當做乙個引數,實際它是乙個元組

#生成另乙個執行緒例項

t2 = threading.thread(target=run2,args=("t2",))

t1.start() #啟動執行緒

t2.start() #啟動另乙個執行緒

print(t1.getname()) #獲取執行緒名

print(t2.getname())

#執行輸出

task t1

task t2

thread-1

thread-2

process finished with exit code 0

解析:task t1和task t2同時執行,並同時顯示結果,但是如果修改為直接呼叫執行,檢視結果

run2("t1")    #修改為直接執行

run2("t2")

#執行輸出

task t1

(隔2s後)

task t2

process finished with exit code 0

解析:在執行完t1後2s才顯示t2的結果,現在可以看出,第一種情況是併發的效果。而第二種直接呼叫則是按順序t1執行完隔2s再執行t2。

暑期訓練 day9

暑期訓練 day9 趙景樂今天主要解決之前沒a的 發現我犯下的都是一些小錯誤,只是當時太著急了沒有檢查出來。其餘的題目都是演算法上不好或者是沒什麼想法,還需要多看書,多答題來解決。今天的訓練賽題多時間長,相比於之前的小比賽出現了耐心不足的情況,兩小時半就有點心浮氣躁的了。還有就是這次新的輸入格式浪費...

實習日記 Day9

今天最大的感受是 how time flies!明天居然就是周五了,這一周也過得太快了吧 估計明天應該不會給我安排任務了 這一周,在我師傅的帶領下,我完成了兩個分給我的任務,還看著師傅做了乙個任務。果然,比起上週的 無所事事 這一周開始正式參與任務以後,總覺得時間過得飛快 明天開始,日記就要變成兩位...

day 9 程序管理

一 程序的基本介紹 1 程式是乙個磁碟上的檔案,而程序通常被定義為乙個正在執行的程式例項。執行程序可以簡單的理解為 計算機將磁碟的二進位制程式載入到記憶體空間中,並且指引 cpu 在記憶體中定址,然後計算的過程。2 在linux中,每個執行的程式 都稱為乙個程序,都分配乙個id號。每個程序都可能以前...