制御が出来ません。何がいけないのですか?

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("スレッドは正常に終了");

    }
}