java併發(三十一)Amdahl定律

2021-09-02 03:01:36 字數 494 閱讀 8634

[b]阿姆達爾定律[/b]

阿姆達爾(amdahl)定律是計算機系統設計的重要定量原理之一,於2023年由ibm360系列機的主要設計者阿姆達爾首先提出。該定律是指:系統中對某一部件採用更快執行方式所能獲得的系統效能改進程度,取決於這種執行方式被使用的頻率,或所佔總執行時間的比例。阿姆達爾定律實際上定義了採取增強(加速)某部分功能處理的措施後可獲得的效能改進或執行時間的加速比。簡單來說是通過更快的處理器來獲得加速是由慢的系統元件所限制。

阿姆達爾曾致力於並行處理系統的研究。對於固定負載情況下描述並行處理效果的加速比s,阿姆達爾經過深入研究給出了如下公式:

s=1/(a+(1-a)/n)

其中,a為序列計算部分所佔比例,n為並行處理結點個數。這樣,當a=0時,最大加速比s=n;當a=1時,最小加速比s=1;當n→∞時,極限加速比s→ 1/a,這也就是加速比的上限。例如,若序列**佔整個**的25%,則並行處理的總體效能不可能超過4。這一公式已被學術界所接受,並被稱做「阿姆達爾定律」(amdahl law)。

(三十一)java多執行緒二

因為執行緒在執行的過程中具有一定的不確定性,在併發的時候就會出現安全問題,因此一般需要採取一定的措施來保證執行緒的安全,同步 塊就是其中一種方式。以下是模擬銀行取錢的多執行緒小例子,兩個都能確保安全,但是有一種卻更好一些。例1 packagedemo1 模擬兩個人同時取乙個賬戶的錢,必須只能有乙個人...

(三十一)java多執行緒二

因為執行緒在執行的過程中具有一定的不確定性,在併發的時候就會出現安全問題,因此一般需要採取一定的措施來保證執行緒的安全,同步 塊就是其中一種方式。以下是模擬銀行取錢的多執行緒小例子,兩個都能確保安全,但是有一種卻更好一些。例1 packagedemo1 模擬兩個人同時取乙個賬戶的錢,必須只能有乙個人...

Java面試題之三十一

第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在string上?switch expr1 中,expr1是乙個整數表示式。因此傳遞給 switch 和 case 語句的引數應該是 int short char 或者 byte。long,string 都不能作用於sw...