赞
踩
解决思路是:使用join();来保证上一个线程执行完后,再执行现在的线程执行。
thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。
比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。
t.join(); //调用join方法,等待线程t执行完毕
t.join(1000); //等待 t 线程,等待时间是1000毫秒。
- package com.zte.power.refuelsitemanagement.service;
-
- public class OrderT1T2T3 {
- public static void main(String[] args) {
- Thread t1 = new Thread(new Runnable() {
-
- @Override
- public void run() {
- try {
- Thread.sleep(5000);
- System.out.println(Thread.currentThread().getName()+"-111");
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- });
-
- Thread t2 = new Thread(new Runnable() {
-
- @Override
- public void run() {
- try {
- System.out.println("我正在等待T1执行完成");
- t1.join();
- Thread.sleep(3000);
- System.out.println(Thread.currentThread().getName()+"-222");
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- });
-
- Thread t3 = new Thread(new Runnable() {
-
- @Override
- public void run() {
- try {
- System.out.println("我正在等待T2执行完成");
- t2.join();
- Thread.sleep(1000);
- System.out.println(Thread.currentThread().getName()+"-333");
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- });
-
- t1.start();
- t2.start();
- t3.start();
-
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。