0

例えば8つのコア装置を備え、例えば、このような巨大なタスク実行:このタスクは、デバイスの8つのコアを使用して実行されますアンドロイドでは、1つのタスクはデバイスのすべてのコアを使用して実行されるか、1つだけが実行されますか?

int sum=1; 
for (int i=0; i<99999999; i++){ 
    sum=(int)(sum+sum); 
} 

を?またはただ一つ?私はあなたが手動で各コアの1/8のタスクで8つのスレッドを作成する必要があるかどうか、またはあなたのタスクで同時に8つのコアを使用できるため、スレッドで巨大なタスクを実行できるかどうかを知りたい。

ありがとうございます。

+0

シングルスレッドは1つのコアでのみ実行されます – Shaishav

+0

8コア間でタスクをどのように配布できますか?手動で8スレッドを使用していますか?少しイライラします。これは、OSによって自動的に処理される必要があります。 – NullPointerException

+0

ここでは、「並列コンピューティング」についてお話しています。それほど簡単ではありません:https://en.wikipedia.org/wiki/Parallel_computing – Shaishav

答えて

0

あなたの例はシングルコアのみで実行されます。

複数のコアを使用する場合は、プログラムを別のスレッドに分割する必要があります。 スレッドを使用して並列実行を改善する場合は、Executorsを使用し、プール制限を設定しないか、等しいコアに設定してください。

は時々コアは同じではない、あなたはその優れたあなたはuse.Youはこれで利用できるどのくらいのコア見ることができることができますどのくらい知っているので、それらのいくつかは、唯一のOSで使用されています

int n = Runtime.getRuntime().availableProcessors(); 
+0

その機能は最新のアンドロイドバージョンで完璧に機能しますか? – NullPointerException

+0

API lvl1以来利用できる基本的なJava関数https://developer.android.com/reference/java/lang/Runtime.html#availableProcessors() – DEADMC

+0

?それはうまくいかないのですか?あなたは "いいえ"と言っている – NullPointerException

関連する問題