美文网首页Java
Conditionally starts and stops a

Conditionally starts and stops a

作者: JaedenKil | 来源:发表于2019-05-08 17:32 被阅读0次
public class ThreadTest01 extends Thread {

    private boolean flag;
    private @SuppressWarnings("unused") ThreadTest01() {

    }
    ThreadTest01(boolean flag) {
        this.flag = flag;
    }

    void setFlag(boolean flag) {
        this.flag = flag;
    }

    @Override
    public void run() {
        super.run();
        int i = 1;
        while (flag) {
            System.out.println("In side ThreadTest01 class " + i);
            i++;
            try {
                Thread.sleep(200);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

``

public class ThreadTest02 {

    public static void main(String[] args) throws InterruptedException {

        System.out.println("In class.");
        System.out.println("Try to run the thread.");
        ThreadTest01 t1 = new ThreadTest01(true);
        t1.start();
        System.out.println("Will run the thread for 5 seconds then try to stop it.");
        Thread.sleep(5000);
        t1.setFlag(false);
        System.out.println("Let's see if the thread will be stopped.");
        Thread.sleep(2000);
        System.out.println("If so, try to start the thread again.");
        t1.setFlag(true);
        System.out.println("Will run the thread for 5 seconds then try to stop it.");
        ThreadTest01 t2 = new ThreadTest01(true);
        t2.start();
        Thread.sleep(5000);
        t2.setFlag(false);

    }
}

Outputs:

In class.
Try to run the thread.
Will run the thread for 5 seconds then try to stop it.
In side ThreadTest01 class 1
In side ThreadTest01 class 2
In side ThreadTest01 class 3
In side ThreadTest01 class 4
In side ThreadTest01 class 5
In side ThreadTest01 class 6
In side ThreadTest01 class 7
In side ThreadTest01 class 8
In side ThreadTest01 class 9
In side ThreadTest01 class 10
In side ThreadTest01 class 11
In side ThreadTest01 class 12
In side ThreadTest01 class 13
In side ThreadTest01 class 14
In side ThreadTest01 class 15
In side ThreadTest01 class 16
In side ThreadTest01 class 17
In side ThreadTest01 class 18
In side ThreadTest01 class 19
In side ThreadTest01 class 20
In side ThreadTest01 class 21
In side ThreadTest01 class 22
In side ThreadTest01 class 23
In side ThreadTest01 class 24
In side ThreadTest01 class 25
Let's see if the thread will be stopped.
If so, try to start the thread again.
Will run the thread for 5 seconds then try to stop it.
In side ThreadTest01 class 1
In side ThreadTest01 class 2
In side ThreadTest01 class 3
In side ThreadTest01 class 4
In side ThreadTest01 class 5
In side ThreadTest01 class 6
In side ThreadTest01 class 7
In side ThreadTest01 class 8
In side ThreadTest01 class 9
In side ThreadTest01 class 10
In side ThreadTest01 class 11
In side ThreadTest01 class 12
In side ThreadTest01 class 13
In side ThreadTest01 class 14
In side ThreadTest01 class 15
In side ThreadTest01 class 16
In side ThreadTest01 class 17
In side ThreadTest01 class 18
In side ThreadTest01 class 19
In side ThreadTest01 class 20
In side ThreadTest01 class 21
In side ThreadTest01 class 22
In side ThreadTest01 class 23
In side ThreadTest01 class 24
In side ThreadTest01 class 25

相关文章

网友评论

    本文标题:Conditionally starts and stops a

    本文链接:https://www.haomeiwen.com/subject/ysyvoqtx.html