public class Priority {
private static volatile boolean notStart=true;
private static volatile boolean notEnd=true;
public static void main(String[] args) throws InterruptedException {
List<Job> jobs = new ArrayList<Job>();
for (int i = 0; i < 10; i++) {
//如果i小于5那个i=1,如果大于51=10
int priority =i < 5 ? Thread.MIN_PRIORITY:Thread.MAX_PRIORITY;
Job job = new Job(priority);//初始化job
jobs.add(job);
Thread thread = new Thread(job, "Thread"+i);//创建线程
thread.setPriority(priority);//设置优先级
thread.start();//启动线程
}
notStart=false;
TimeUnit.SECONDS.sleep(10);
notEnd=false;
for (Job job : jobs) {
System.out.println("job priority:"+job.priority+"== count:"+job.jobCount);
}
}
static class Job implements Runnable{
private int priority;
private long jobCount;
public Job(int priority) {
this.priority=priority;
}
@Override
public void run() {
while (notStart) {
Thread.yield();
}
while (notEnd) {
Thread.yield();
jobCount++;
}
}
}
}new | 初始状态,线程被构造,但是还没有调用start()方法 |
runnable | 运行状态,一旦调用start方法,线程处于runnable状态,一个可运行的线程可能正在运行也可能没有运行,这取决去操作其他给线程提供的运行时间。 |
blocked | 阻塞状态,当一个线程处于被阻塞和等待状态,它不运行任何代码且消耗的资源最少,当一个线程视图获取一个内部对象锁,而该锁被其他对象持有,则该线程进入阻塞状态,当所有线程释放该锁,并且线程调度器允许本线程持有它的时候,该线程变成非阻塞状态。 |
Waiting | 等待状态,表示线程进入等待状态,该状态表示当前线程需要等待其他线程做出一些特定的动作(通知或中断) |
timed Waiting | 计时等待,有几个方法有一个超时参数,调用它们导致线程进入计时等待状态,这一状态将保持到超时期满或者接收到适当的通知,带有超时参数方法有Tread.sleep和Object.wait、Tread.Jion、Lock.Trylock以及Condition.await的计时版。 |
Terminated | 终止状态,线程因如下两个原因之一而被中止: 1.run方法正常退出而自然消亡。 2.因为一个没有捕获的异常终止了run方法而意外死亡。 |
public class InterruptedTest implements Runnable{
private static Thread thread;
@Test
public void test(){
thread = new Thread(new InterruptedTest(),"InterruptedTest");
thread.setDaemon(true);
thread.start();
}
@Override
public void run() {
thread.interrupt();//中断线程
boolean interrupted2 = thread.interrupted();//获取线程状态,并将线程状态重置为false
System.out.println(interrupted2);//被中断true,
boolean interrupted = Thread.interrupted();//获取当前状态,false
System.out.println(interrupted);
boolean interrupted3 = Thread.interrupted();//获取当前状态,false
System.out.println(interrupted3);
}
}public class Shutdown {| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |