スレッドをタイムスケジュールで終了させるプログラム
制御が出来ません。何がいけないのですか?
package com.company;
import java.io.*;
import java.util.*;
import java.util.concurrent.TimeUnit;
public class Main {
static boolean b = true;
static Thread stdRun = null;
public static void main(String[] args) {
Runnable inputStreamThread = new Runnable(){
public void run(){
while(b){
try{
//System.out.println("Thread stdRun start");
TimerTask task = new TimerTask() {
public void run() {
b=false;
}
};
Timer timer = new java.util.Timer();
timer.schedule(task, TimeUnit.SECONDS.toMillis(1));
while(true){
System.out.println("テスト");
Thread.sleep(200);
}
} catch (Exception e) {
e.printStackTrace();
}
b=false;
}
}
};
stdRun = new Thread(inputStreamThread);
/* スレッドを開始します。 */
stdRun.start();
/* スレッドが終了するのを待機 */
try {
stdRun.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("スレッドは正常に終了");
}
}