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

原创 2016年05月31日 15:37:06

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

代码如下:

package com.zcj.join;

public class JoinTest {
    public static void main(String[] args) {
		ThreadA threadA = new ThreadA();
		ThreadB threadB = new ThreadB(threadA);
		ThreadC threadC = new ThreadC(threadB);
		threadA.start();
		threadB.start();
		threadC.start();
    }
}

class ThreadA extends Thread{
	@Override
	public void run() {
		// TODO Auto-generated method stub
		System.out.println("A");
	}
	
}
class ThreadB extends Thread{
	 private ThreadA threadA;
	   public ThreadB(ThreadA threadA){
		   this.threadA =threadA;
	   }
		@Override
		public void run() {
			// TODO Auto-generated method stub
			try {
				threadA.join();
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			System.out.println("B");
		}
		
	}
class ThreadC extends Thread{
	   private ThreadB threadB;
	   public ThreadC(ThreadB threadB){
		   this.threadB =threadB;
	   }
		@Override
		public void run() {
			// TODO Auto-generated method stub
			try {
				threadB.join();
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			System.out.println("C");
		}
}
运行结果:

A
B
C



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

三个线程ABC,交替打印ABC

synchronized 问题为三线程间的同步唤醒操作,主要的目的就是ThreadA->ThreadB->ThreadC→ThreadA……循环执行三个线程。为了控制线程执行的顺序,那么就必须要确定...

用三个线程按顺序循环打印abc 三个字母,比如abcabcabc

线程类package threadPool.printABC; import java.util.concurrent.atomic.AtomicInteger; import java.util....

顺序打印ABC------java多线程的一道经典面试题

这是迅雷的一道面试题,顺序打印ABC十次。 源代码如下 public class PrintABC { public static Boolean isThreadA = true; pub...

JAVA三个线程依次打印ABC

一、一些简单概述        多线程情形下对共享资源的访问是需要互斥的,比如对一个变量的读写,一个线程读写这个变量的时候,其它线程就不能对这个变量进行读写。Java提供了synchronized关...

多线程按顺序依次打印ABCD---java多线程的一道经典面试题

package web1; import java.util.concurrent.atomic.AtomicInteger; public class Main1 {     public s...

java多线程---顺序打印ABC的三种实现---volatile方式

利用volatile的立即可见性: package com.zcj.thread; public class PrintABC2 { private volatile int status =1...
  • whu_zcj
  • whu_zcj
  • 2016年05月27日 16:50
  • 513

java多线程顺序打印ABC

在JAVA中,是没有类似于PV操作、进程互斥等相关的方法的。JAVA的进程同步是通过synchronized()来实现的,需要说明的是,JAVA的synchronized()方法类似于操作系统概念中的...

java多线程---顺序打印ABC的三种实现---synchronized方式

利用同步锁,这种方式存在问题就是唤醒的过程中不能指定我说需要唤醒的线程,导致同一个锁上的线程都唤醒了 代码如下: package com.zcj.thread; import java.util.c...
  • whu_zcj
  • whu_zcj
  • 2016年05月27日 16:52
  • 1743

三个线程分别打印ABC,按顺序输出ABCABC...

#include #include #include #include #include #include using namespace std; pthread_mutex_t lo...

java多线程循环打印A,B,C

我最近在准备面试,突然想起来大概二年前的汽车之家面试的一道题,题目是java多线程循环打印A,B,C,14年这道题还是不会,这两年过去了,又在传统行业混了二年,水平其实并没有长得很快,毕竟感觉自己用的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java多线程---顺序打印ABC的三种实现---join方法
举报原因:
原因补充:

(最多只允许输入30个字)