代码与范例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public class TestThread extends Thread { private volatile boolean halt_; public TestThread() { halt_ = false; } public void run() { while (!halt_) { // TODO } } public void halt() { halt_ = true; interrupt(); } } |
说明:出于线程安全的考虑,Java 禁止使用 stop() 来结束线程。用于启动线程的 start() 只能执行一次,在执行 run() 之后即使再次调用 start(),run() 也不会被调用,必须重新调用 new()。而且根据虚拟机的具体实现,start() 与 run() 之间也可能有一定的延迟。