17 為什麼會有執行緒?

2021-07-17 03:24:52 字數 780 閱讀 1553

單執行緒,就是指單個流水線的程序(a→b→c),這樣的效率不太高。

多執行緒,指多個單執行緒同時進行,效率高。

生活場景:

購買電腦時,銷售人員介紹這台電腦是cpu幾核。通常來說,核越多,執行的就越快。單核cpu執行就是單執行緒,雙核cpu就是多執行緒。

類似於生活中的行車道,有的車道小,只有一條道,所以容易造成擁擠。如果車道變寬,可以跑多個車道,那麼效率就會高很多了。一條道為單執行緒,多條道為多執行緒,可以提高效率。

繼承thread類,new thread(){}.start(),重寫run()方法,使用start()方法

實現runnable介面,new thread(new runnable() {})。start()

兩者的區別:

同步:進行同乙個步驟

a輸入:」我」,」愛」,」編」,」程」

b輸入:」我」,」不」,」愛」,」編」,」程」

如果a輸入和b輸入不是同步的,輸出時可能會出現」我愛 我不愛程式設計 程式設計」。

如果a輸入和b輸入是同步的,輸出則是」我愛程式設計 我不愛程式設計」

如果某一部分**塊(e.g. a輸入/b輸入)需要同步進行,則一定要設為同步synchronized/ (wait,notify).

非同步:當呼叫乙個需要花費很長時間來執行的方法,並不希望讓程式等待方法返回時,就應該使用非同步程式設計,在很多情況下,採用非同步途徑往往更有效率。

執行緒池就是類似於養魚的池子,每一條魚都是乙個執行緒,當釣起一條魚後,釣魚這個動作就算完成了,而這條魚當場不會死亡,又可以將這條魚再放回執行緒池繼續釣。

為什麼會有異常

為什麼會有異常?為了使程式更好的執行。很多教程裡都舉例 10 0 0不能作為分母 這樣會報異常。我常想,那麼為什麼不用if else來解決這件的問題。然而,真實的情況是 我們並不知道未來會發生什麼。比如說,電腦乙個資料夾路徑,本來我用的好好的,突然有一天,來了乙個人,將這個檔案剪下走了,我並不知道這...

JS 裡為什麼會有 this

這篇文章是從語言創造者 js 之父的角度 來思考 this,我之前那篇講 this 的文章是從使用者的角度寫的。假設我們有乙個物件 var person saybye function 這個 person 物件有 name 和 age 屬性,還有乙個 sayhi 方法,現在的需求是 呼叫 perso...

為什麼會有滑動視窗

既然我們已經有了滾動視窗,為什麼還需要滑動視窗呢?也就是滑動視窗的意義是什麼?其實滾動視窗和滑動視窗並沒有特別的應用場景要求,也就是說到底什麼時候用滑動視窗,什麼時候用滾動視窗完全根據需求來決定.那麼滑動視窗和滾動視窗的區別是什麼?當我們需要更細粒度的統計計算,需要使用滑動視窗.可能有人會問那我們使...