1.要求线程a执行完才开始线程b, 线程b执行完才开始主线程
思路:由题意可知会有两条副线程a和b,编写好a,b的内容后,在主线程中启动两个线程。
关键点在于,一旦开启线程,线程的执行完全是由各自抢占cpu的能力而定,是人为不可控的,为了实现题目中的要求,我们需要在b线程中添加a.join()语句,便可以实现即使由b抢占到了cpu使用权,依旧会等a执行完,同样的方法在main方法中添加b.join()来实现main最后运行。
package concurrent.thread;
/**
* <p>Desription: </p>
*
* @Author: 罗志远
* @Date: 2021/5/6 0:05
* @ProjectName: Thread
* @Package: concurrent.thread
* @ClassName: T1
* @Version: 1.0
*/
public class T1 {
public static void main(String[] args) {
final Thread a = new Thread("A线程"){
@Override
public void run() {
for (int i = 0; i < 10; i ++) {
System.out.println(getName() + ":" + i);
}
}
}