1.如果你有三个线程,分别为T1,T2,T3,如何让线程T2在线程T1之后执行,在线程T3之前执行。 【如何控制线程执行的先后顺序】答案是:使用线程的join方法,该方法的作用是“等待线程执行结束”,即join()方法后面的代码块都要等待现场执行结束后才能执行。事例代码如下:
package com.liuan.job;
public class Test {
@SuppressWarnings("static-access")
public static void main(String[] args) throws InterruptedException {
Thread t1 = new Thread(new Runner());
Thread t2 = new Thread(new Runner());
Thread t3 = new Thread(new Runner());
t1.start();
t1.sleep(5000);
t1.join();
t2.start();
t2.sleep(1000);
t2.join();
t3.start();
t3.join();
}
}class Runner implements Runnable{ @Override
public void run() {
System.out.println(Thread.currentThread().getName()+"");
}
}
执行结果是:
Thread-0
Thread-1
Thread-2
2.补充 线程的优先级无法保障线程的执行次序。只不过优先级高的线程获取 CPU 资源的概率大一点而已。
推荐阅读
- 把一个xml节点信息递归的存到map中的方法
- Java 多线程 子线程 交替打印 奇偶数
- 给定一个 ArrayList的一个对象,实现在这个集合中添加一个字符串
- J2SE|通过线程按照顺序循环输出ABC n次
- weblogic|weblogic——Servlet failed with Exception
- J2SE/JAVA|DOS命令全集
- JVM_自动内存管理机制