你用join()方法意思就是让运行到这个方法的线程停止,让调用这个方法的线程执行完,本线程才能继续执行。如果你要让t2释放执行权给主线程和t1,那意思就是让t2线程运行到t1调用的join方法,所以你可以把t1传入给t2线程,在t2线程中调用t1的join()方法就可以了
代码实现:- public class Test2 {
- public static void main(String[] args) throws InterruptedException {
- T1 t1 = new T1();
- T2 t2 = new T2(t1);
- t1.start();
- t2.start();
- for(int x=0;x<100;x++){
- System.out.println("main---"+x);
- }
- }
- }
- class T1 extends Thread{
- @Override
- public void run() {
- for(int x=0;x<100;x++){
- System.out.println("t1---"+x);
- }
- }
- }
- class T2 extends Thread{
- private T1 t1;
- public T2(T1 t1){
- this.t1 = t1;
- }
- @Override
- public void run() {
- try {
- t1.join();
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- for(int x=0;x<100;x++){
- System.out.println("t2---"+x);
- }
- }
- }
复制代码 |