では、ランチャー スレッドの run メソッドで実行される for ループで一連のスレッドを作成して開始するとします。また、ランチャー スレッドと、そのスレッドが作成したすべてのスレッドを中断できるようにしたいとしましょう。ボタンを使用してこれを行います。
だから、このようなもの -
try{
for(int i = 0; i < n;i++){
Worker currThread = new Worker(someArgs);
workerThreads.add(currThread);
currThread.start();
}
} catch (InterruptedException e){
e.printStackTrace();
}
ボタン-
public void actionPerformed(ActionEvent arg0) {
List<Worker> threads = launchThread.getWorkerThreads();
for(int i = 0; i < threads.size();i++){
threads.get(i).interrupt();
}
launchThread.interrupt();
}
さて、スレッド作成と同時に割り込みが発生しないようにしたいとしましょう。これを行う方法は、ダミーオブジェクトを構築し、両方のコードをロック内に配置することだと思います
synchronized(dummyObject){
//thread creation or interruption code here (shown above)
}
この方法は機能しますか?確認する方法が分からないので質問させてください。