多線程的特點 為什么有人手機永遠都是靜音?
為什么有人手機永遠都是靜音?社會進步的表現(xiàn)。什么是單線程、多線程?單線程是什么意思?當(dāng)單個線程執(zhí)行一個程序時,程序路徑是按連續(xù)順序排列的。第一個必須處理好,第二個必須執(zhí)行。單線程和多線程的區(qū)別單線程是
為什么有人手機永遠都是靜音?
社會進步的表現(xiàn)。
什么是單線程、多線程?
單線程是什么意思?
當(dāng)單個線程執(zhí)行一個程序時,程序路徑是按連續(xù)順序排列的。第一個必須處理好,第二個必須執(zhí)行。
單線程和多線程的區(qū)別單線程是什么意思?
假設(shè)我們有以下四個問題:
1 1=a,1 2=B,2 3=C,4 5=D
單線程是一個接一個的計算:
步驟1:1 1=2,步驟2:1 2=3,步驟3:2 3=5,步驟4:4 5=9
然后告訴您結(jié)果:
a=2,B=3,C=5,D=9
多線程,假設(shè)四個線程,即同時計算四個問題:
第一步:
線程1:11=2
線程2:12=3
線程3:23=5
線程4:45=9
然后告訴你結(jié)果:
a=2,B=3,C=5,[D=9
可以看出多線程可以同時處理多個計算,它的計算能力似乎呈指數(shù)增長,但有一個問題是,多個操作必須是獨立的,例如:[1 2=a,a 3=b
這種計算,你不知道a不能計算b,在這種情況下,你不能計算多線程。
然后是“競爭狀態(tài)”
,即多個線程等待彼此結(jié)束,或等待彼此釋放資源。對于單個線程,所有操作都必須一個接一個地完成,因此不存在這種情況。但是,如果有多個線程,如果調(diào)度沒有很好地完成,很容易發(fā)生這種情況。例如,不應(yīng)同時運行的兩個線程意外運行,或者其中一個線程啟動第二個線程而未在計劃時間內(nèi)結(jié)束。
單線程的優(yōu)點是編程簡單,不需要考慮太多情況。缺點是效率低。
多線程具有高效、高性能的優(yōu)點,但并不是所有的操作都可以并行化,而且容易出現(xiàn)各種意想不到的奇怪bug。