一、线程的五大状态
二、线程方法
方法 | 说明 |
---|---|
setPriority(int newPriority) | 更改线程的优先级 |
static void sleep(long mills) | 在指定的毫秒数内让当前正在执行的线程休眠 |
void join() | 等待该线程终止 |
static void yield() | 暂停当前正在执行的线程对象,并执行其它线程 |
void interrupt() | 中断线程,一般不建议使用 |
boolean isAlive() | 测试线程是否处于活动状态 |
三、停止线程
- 不推荐使用JDK提供的stop()、destroy()方法【已废弃】
- 推荐线程自己停止下来
- 建议使用一个标志位进行终止变量,当flag=false,则终止线程运行。
四、案例
package com.massimo.thread;
//测试stop
public class ThreadStop implements Runnable {
//1.设置一个标志位
private boolean flag = true;
@Override
public void run() {
int i = 0;
while (flag){
System.out.println("run.....Thread" + i++);
}
}
//2.设置一个公开的方法停止线程
public void stop(){
this.flag = false;
}
public static void main(String[] args) {
ThreadStop threadStop = new ThreadStop();
new Thread(threadStop).start();
for (int i = 0; i < 1000; i++) {
System.out.println("main" + i);
//调用stop方法切换标志位,让线程停止
if (i == 900){
threadStop.stop();
System.out.println("该线程停止了");
}
}
}
}