2012-11-30 17 views
1

,我注意到它們被限制爲每個線程的CPU的25%。Java:當我使用線程或主線程時,線程被限制爲CPU的25%

有沒有辦法告訴一個線程使用更多的CPU?因爲我覺得這有點限制。

非常感謝。

+2

你的意思是你的每個CPU只能使用25%的容量嗎?或者你的整體CPU容量只能用在25%(如果你有4個CPU,這意味着其中一個可能是100%忙)。 – assylias

+0

您使用哪種工具來測量CPU消耗?在什麼操作系統上?當一個處理器完全加載時,Linux顯示100%,Windows顯示全部。 –

+0

線程只會使用所需的計算能力。你不能說它不必要地消耗更多電力。查看我的答案,確實給CPU帶來了很大的負擔。 –

回答

8

你可能有一個四核心機器。你不能在一個以上的核心上運行線程。

+0

+1或具有超線程的雙核機器。 –

1
public class Mainn { 

    public static void main(String[] args) { 
     int noOfProcessors = Runtime.getRuntime().availableProcessors(); 
     System.out.println(noOfProcessors); 
     for (int i = 0; i< noOfProcessors ; i++){ 
      new Thread(new Runnable() { 

       @Override 
       public void run() { 
        for(;;){ 
        } 
       } 
      }).start(); 
     } 
    } 
} 

這會使用大量的CPU測試它。

線程或進程只會使用所需的計算能力。你不能說它需要更多的計算能力,除非你創建一個需要更多計算的代碼

JAVA中的一個線程可以一次在單核上運行。所以我所做的就是爲每個核心創建一個線程。

+0

哈哈,這是4個不同的線程(在OP的情況下) – durron597

+0

這就是我在我的回答中所說的 –