私は複数のスレッドがあるアプリケーションを持っています。私はそれらを順番に実行するようにします。私はexecutorServiceをマルチスレッド用に選択します。スレッド(実行方法)にエラーがある場合は、ネットスレッドに移動したいので、最終的に何個のスレッドが正常に完了したかを知ることができます。(サンプル数:executorサービスインターハンドリング処理
)メインクラス:
public class MySampleClass{
ExecutorService executor = Executors.newSingleThreadExecutor();
for(int i=0; i<=100;i++){
executor.submit(new ThreadClass());
}
//After all threads executed now to shutdown executor
executor.shutdown()
executor.awaitForTermination(1,Time.MILLISECONDS);
マイサンプルThreadクラス:
public class ThreadClass implements Runnable{
@override
public void run(){
boolean isCompleted= doAction();
if(!isCompleted){
// I want here to stop this thread only..what to do ?
//executor.shutdown will stop all other threads
}
}
}
何をすべきかどんな提案?私はそれを間違ってやっていますか?
なぜあなたは単に「復帰」しないのですか? –
これらはスレッドではなく、それらは_tasks_です。タスクとは、実行する必要のある作業のことです。あなたの 'SingleThreadExecutor'はスレッドを使ってタスクを実行するオブジェクトです。 –