for(int ii = 0; ii < 3; ii++)
executor.execute(new someClass);
対
someFunction();
someFunction();
someFunction();
どこ
public static void someFunction(){
synchronized(lock){
for(int ii = 0; ii < long.MAX_VALUE; ii++);
}
}
private class someClass implements Runnable {
public void run() {
someFunction(); //someFunction() is a synchronized function
}
}
これがかなり漠然とした質問かもしれない場合は申し訳ありません。同期した someFunction() を 3 回連続して呼び出し、別の時間にはそれぞれが someFunction() のタスクを実行する 3 つのスレッドを使用します。同期されているため、一度にアクセスできるのは 1 スレッドだけなので、3 スレッドと 1 スレッドの速度差はほぼ同じです。また、someFunction() を変更したり、非同期にしたりすることも許可されていません。スレッドの使用方法からマルチスレッドの方法で高速化する方法があるかどうか疑問に思っていましたか? たぶん、スレッドがどのようにキューに入れられるかなどでしょうか?助けてくれてありがとう。