线程停止
线程停止
线程状态
创建状态:new Thread() 线程一旦创建,就进入新生状态
就绪状态:线程start()后进入就绪状态,线程阻塞解除后由阻塞状态进入就绪状态
运行状态:线程由就绪状态获得CPU资源之后进入运行状态,释放资源后由运行状态进入就绪状态
阻塞状态:运行状态时等待用户输入时/线程休眠时,进入阻塞状态 sleep/wait/同步锁定
死亡状态:线程自然执行完毕/外部干涉终止线程,线程进入死亡状态
线程方法
setPriority(int newPriority): 修改线程优先级
static void sleep(long millis): 指定的毫秒数内让当前正在执行的线程休眠
void join(): 等待该线程终止
static void yield(): 暂停当前正在执行的线程对象,并执行其他线程
void interrupt(): 中断线程,不要使用这个方法
boolean is Alive(): 测试线程是否处于活动状态
线程停止
不推荐使用JDK提供的stop()/destory()方法,两个方法已废弃
推荐线程自己停止下来
建议使用一个标志位进行终止,变量flag=false,则终止线程运行
代码
package com.example.multi_thread;
public class TestStop implements Runnable {
private boolean flag;
public TestStop(boolean flag) {
this.flag = flag;
}
@Override
public void run() {
int i = 0;
while (flag) {
System.out.println("Run" + i++);
}
}
public void stop() {
flag = false;
}
public static void main(String[] args) throws InterruptedException {
TestStop testStop = new TestStop(true);
new Thread(testStop).start();
for (int i = 0; i < 10; i++) {
Thread.sleep(10);
System.out.println(i);
}
testStop.stop();
}
}