1
OSレベルでマルチスレッドに関する質問があります。
私はあなたがループのための2つの出力内の任意のミスをせずに、同時に並行して実行することができます上記のコードで見たようマルチスレッド、マルチスレッドを使用していなくてもJavaコードが複数のスレッドで実行されます
public static void main(String[] args)
{
int sum1=0, sum2=0;
for(int i=0; i < 10000; i++)
sum1 += i;
for(int j=0; j < 20000; j++)
sum2 += j;
System.out.print(sum1);
System.out.print(sum2);
}
を使用しないJavaコードを持っています。 したがって、OSは、スピードアップするために2つのスレッドで自分のコードを同時に実行できます。 OSでスレッドを使用してコードをスピードアップしますか?
あなたは** OS **があなたの** Javaコード**(またはバイトコード)を分析して並列化の機会を自動的に推論できるかどうかを尋ねていますか? –
'2つのforループは同時に実行できます.' False。それらは線形に実行されます。最初の1つのループ( 'i'変数)、次に2番目の変数(' j'変数)。 – UDKOX
これらのコードは決して同時に実行されることはありません。処理速度が速すぎるので、それらが同時に実行されていると思うので、Javaの行ごとにプログラムを実行してください。 –