我對於多執行緒是否提高效率的理解

2021-10-13 22:12:14 字數 434 閱讀 4767

多執行緒是否會提高效率?實際上多執行緒提高效率指的是提高cpu的利用率。

並行指的是三個人吃三個蘋果,併發指的是乙個人吃三個蘋果。

多執行緒屬於併發,併發指的是在多個執行緒上來回切換,在乙個執行緒上做一點,再在另乙個執行緒上做一點。多個執行緒之間來回切換,創造結束執行緒也會產生時間的消耗。那麼單執行緒不會產生這類消耗,所以說單執行緒應該比多執行緒快麼?

問題出現在這裡,事實上執行緒執行時難免會碰到讀取資料庫,io等情況。在這種情況下cpu不會繼續往下執行,而是會等待讀取資料庫的操作執行完畢或者io操作執行完畢才會繼續往下執行。這個時候cpu處於空閒狀態。(注:io,讀取資料庫等操作的同時cpu也可以進行資料處理的操作)所以cpu並沒有得到充分的使用。而多執行緒則在乙個執行緒進行等待的同時,另乙個執行緒進行資料處理,所以多執行緒的效率比單執行緒的效率高就體現在了這裡。也就是提高了執行緒的使用率。

個人見解,如有問題歡迎指出。

單核CPU使用多執行緒能否提高效率

什麼是執行緒上下文切換 什麼是cpu時間片 一,如果是cpu密集型作業 不能 假設一段耗時總共為10s的 不涉及io操作 使用單執行緒執行,只需要10s的時間,當使用多執行緒執行時,就會涉及到執行緒的上下文切換,這時耗時肯定會超過10s的,所以這種情況下不能提高效率。二,如果是io密集型的作業 能 ...

提高效率的幾種方法

現在,隨著技術的進步,我們對資訊的獲取越來越容易。一方面,我們獲得了更多的資訊 另一方面,我們也被眾多的資訊所包圍,導致一種所謂的資訊過載。記得王建碩在他的一篇文章談過資訊過載的問題。他說,其實根本就不存在資訊過載,只不過在以前受到技術的限制,人們無法輕易的於自己關係不大的資訊 而如今網際網路使人們...

sql的簡單提高效率方法

少用in操作 效率極差 盡量用表關聯代替 select要指定列,不要 會讀入所有資料,而指定列則只提取涉及的列,減少io 盡量有where 減少讀取量 where操作列盡量有索引 加快查詢 mysql索引使用b tree資料結構對特定列額外組織存放,加快儲存引擎查詢記錄的速度,不需回表查詢資料的就是...