多執行緒的效率一定快嗎?

2022-09-09 02:18:11 字數 820 閱讀 5960

測試序列執行和並行執行:

//

必須是final,否則會報錯

private

static

final

long count = 100000000;

@test

public

void testefficiency() throws

exception

private

void concurrence() throws

interruptedexception

}});

t.start();

int b = 0;

for(long i = 0;i)

t.join();

long end =system.currenttimemillis();

system.out.println("並行執行時長:"+(end -start));

}private

void

serial()

int b = 0;

for(long i=0;i)

long end =system.currenttimemillis();

system.out.println("序列執行時長:"+(end -start));

}

結果:迴圈次數

序列時長

並行時長

100萬

1000萬

1億併發執行的效率不一定比序列執行高,因為多執行緒在執行的時候會有個搶占cpu資源,上下文切換的過程。

it技術和行業*** 417691667

多執行緒一定快嗎?

package com.itmyhome.test 測試併發執行和序列執行的效率 author tracymcgrady public class concurrencytest catch interruptedexception e serial 併發執行 private static void...

多執行緒一定快嗎?

cpu通過給執行緒分配cpu時間片來實現多執行緒執行的,也就是時間片輪轉機制,cpu分配給每個執行緒的時間片非常短,所以我們才會感覺多個執行緒是同事執行的。cpu在執行執行完乙個時間片後會切換到下乙個任務,切換之前會儲存上乙個任務的狀態,以便下次切換回這個任務的時候可以載入到這個任務的狀態,所以任務...

java多執行緒一定快嗎?

先看下面的例子 總結 當count 100時,同步執行的時間較短,當count 10000時,非同步執行的時間較短。看起來,並不是非同步一定比同步快。這是因為在程式執行時,cpu會通過時間片分配演算法來迴圈執行任務,在多個任務之間不停的來回切換執行緒。當併發執行累計運算元量較小時,執行的速度會比序列...