多线程顺序打印ABC的三种实现---join方法

来源:互联网 发布:nginx日志在哪 编辑:程序博客网 时间:2024/05/19 05:29

使用join方法,让三个线程之间存在等待关系

代码如下:

[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. package com.zcj.join;  
  2.   
  3. public class JoinTest {  
  4.     public static void main(String[] args) {  
  5.         ThreadA threadA = new ThreadA();  
  6.         ThreadB threadB = new ThreadB(threadA);  
  7.         ThreadC threadC = new ThreadC(threadB);  
  8.         threadA.start();  
  9.         threadB.start();  
  10.         threadC.start();  
  11.     }  
  12. }  
  13.   
  14. class ThreadA extends Thread{  
  15.     @Override  
  16.     public void run() {  
  17.         // TODO Auto-generated method stub  
  18.         System.out.println("A");  
  19.     }  
  20.       
  21. }  
  22. class ThreadB extends Thread{  
  23.      private ThreadA threadA;  
  24.        public ThreadB(ThreadA threadA){  
  25.            this.threadA =threadA;  
  26.        }  
  27.         @Override  
  28.         public void run() {  
  29.             // TODO Auto-generated method stub  
  30.             try {  
  31.                 threadA.join();  
  32.             } catch (InterruptedException e) {  
  33.                 // TODO Auto-generated catch block  
  34.                 e.printStackTrace();  
  35.             }  
  36.             System.out.println("B");  
  37.         }  
  38.           
  39.     }  
  40. class ThreadC extends Thread{  
  41.        private ThreadB threadB;  
  42.        public ThreadC(ThreadB threadB){  
  43.            this.threadB =threadB;  
  44.        }  
  45.         @Override  
  46.         public void run() {  
  47.             // TODO Auto-generated method stub  
  48.             try {  
  49.                 threadB.join();  
  50.             } catch (InterruptedException e) {  
  51.                 // TODO Auto-generated catch block  
  52.                 e.printStackTrace();  
  53.             }  
  54.             System.out.println("C");  
  55.         }  
  56. }  
运行结果:

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. A  
  2. B  
  3. C  
0 0
原创粉丝点击