Java如何停止线程?

在Java编程中,如何停止线程?

以下示例演示了如何通过创建一个用户定义的方法run()方法和Timer类来停止线程。

package com.yiibai;

import java.util.Timer;
import java.util.TimerTask;

class CanStop extends Thread {
    private volatile boolean stop = false;
    private int counter = 0;

    public void run() {
        while (!stop && counter < 10000) {
            //System.out.println(counter++);
        }
        if (stop){
            System.out.println("Detected stop");
        }
    }

    public void requestStop() {
        stop = true;
    }
}

public class StoppingThread {
    public static void main(String[] args) {
        final CanStop stoppable = new CanStop();
        stoppable.start();

        new Timer(true).schedule(new TimerTask() {
            public void run() {
                System.out.println("Requesting stop");
                stoppable.requestStop();
            }
        }, 350);
    }
}
Java

上述代码示例将产生以下结果 -

Requesting stop
Detected stop
posted @ 2018-09-09 13:34  borter  阅读(188)  评论(0编辑  收藏  举报