`

3个线程,A,B,C,这三个线程分别只能打印 “a”,“b”,“c”,怎么让这三个线程依次打印“abc"

 
阅读更多
package com.jbx.thread;

/**
 * 3个线程,A,B,C,这三个线程分别只能打印 “a”,“b”,“c”,怎么让这三个线程依次打印“abc"
 * 
 * @author Administrator
 * 
 */
public class TestJoin {
	public static void main(String[] args) {
		Thread a = new Thread(new AThread());
		Thread b = new Thread(new BThread());
		Thread c = new Thread(new CThread());
		a.start();
		try {
			a.join();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		b.start();
		try {
			b.join();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		c.start();
		try {
			c.join();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		
	}
}

class AThread implements Runnable {

	@Override
	public void run() {

		System.out.println("a");
	}

}

class BThread implements Runnable {

	@Override
	public void run() {

		System.out.println("b");
	}

}

class CThread implements Runnable {

	@Override
	public void run() {

		System.out.println("c");
	}

}


执行结果:
a
b
c

这种方式经测试在main方法中加入循环方法之后无法实现依次输出abcabcabc
分享到:
评论

相关推荐

    三个线程交错输出

    每个线程会有一个特定的打印序列,例如线程A打印"ABC",线程B打印"DEF",线程C打印"GHI"。为了实现交错输出,我们需要控制线程的执行顺序,确保它们在特定时刻能够交替访问共享资源(在这种情况下,共享资源是打印...

    线程分解详细

    在这个场景中,我们的目标是创建三个线程,分别对应线程ID A、B、C,使得它们在屏幕上循环打印10次"ABC"。这将涉及到线程同步、线程通信以及线程执行顺序控制。 首先,我们需要理解线程的基本概念。线程是操作系统...

    阿里笔试与答案

    阿里巴巴作为全球知名的互联网科技公司,其招聘流程严谨且专业,尤其是技术岗位的笔试环节,通常会涉及到计算机科学基础知识、编程能力、算法设计、系统分析等多个方面。题目.pdf可能包含了这些领域的多项选择题、...

    java代码-3线程输出26个英文

    在给定的“java代码-3线程输出26个英文”场景中,我们可以理解为有一个程序创建了三个线程,它们协同工作来打印26个英文字母。这个简单的例子有助于我们深入理解Java中的线程同步和并发控制。 首先,我们需要了解...

    Java多线程连续打印abc实现方法详解

    + 例如,ThreadA 打印 A,ThreadB 打印 B,ThreadC 打印 C。 + 使用 synchronized 关键字来实现锁的同步。 * 方案二:使用信号量实现连续打印abc(推荐) + 使用信号量来实现三个线程的顺序执行。 + 例如,使用 ...

    Java多线程实现同时输出

    如果我们想要扩展到三个线程,分别打印A、B、C,我们可以创建一个名为ThreadABC的类,并添加一个打印C的方法。代码如下: ```java public class ThreadABC { public static void main(String[] args) { final ...

    java代码-三个线程轮流输出abc

    在这个问题中,有三个线程分别代表A、B、C三个角色,它们需要按照特定顺序(ABC、BCA、CAB、...)交替打印字符。为了实现这个功能,开发者通常会用到Java的线程同步机制,如synchronized关键字、wait()和notify()...

    c语言+稀疏矩阵相乘

    1. 初始化两个输入稀疏矩阵A和B,以及一个空的输出稀疏矩阵C。 2. 遍历矩阵A的每一个非零元素,查找矩阵B中对应列的非零元素。 3. 对找到的元素进行乘法运算,然后将结果累加到矩阵C对应位置。 4. 将累加结果存入...

    多线程异常处理.pdf

    在`main`方法中,创建了两个`SimpleThread`实例并启动,它们分别打印"A"和"B"。由于没有同步控制,这两个线程可能会交错打印,导致输出不按预期顺序。 实验二涉及到了多线程同步的问题。在Java中,`synchronized`...

    C#求水仙花数的算法实例

    return a * a * a + b * b * b + c * c * c == num; } } ``` 这段代码首先定义了一个主函数 `Main`,它通过一个for循环遍历100到999之间的所有数字。对于每个数字,它调用 `IsDaffodil` 函数进行检查。如果该数字...

    c语言编程题之数学问题丑数.zip

    一个数如果可以表示为2的a次方、3的b次方和5的c次方的乘积(a、b、c是非负整数),那么它就是丑数。这意味着我们需要一个方法来生成这些数。我们可以维护三个指针,分别对应2、3和5的幂次,每次将这三个指针对应的...

    java信号量控制线程打印顺序的示例分享

    在这个示例中,信号量被用来控制三个线程(A、B、C)按照特定顺序(ABCABC...)打印字符。以下是关于Java信号量及其在示例中的应用的详细解释: 1. **什么是信号量?** 信号量是一个计数器,可以理解为一种许可证...

    浅谈Python3多线程之间的执行顺序问题

    在这个例子中,定义了三个线程A、B和C,并为它们分配了三把锁mutex1、mutex2和mutex3。 线程A、B和C的执行顺序是通过锁的获取和释放来控制的。线程A持有mutex1并释放mutex2,线程B持有mutex2并释放mutex3,线程C...

    c语言笔试题

    - 线程是CPU调度的基本单位,多个线程共享同一进程的资源。 - 线程创建和切换开销比进程小,多线程并发性更高。 - 线程间可以直接访问共享内存,提高效率,但需要处理竞态条件和同步问题。 这些知识点涵盖了...

    多线程详解

    下面是一个简单的多线程程序示例,演示了如何创建两个线程,并让它们分别输出字符串“HELLO”和“world”。 ```c #include #include #define NUM 5 void *print_msg(void *msg) { char *str = (char *)msg; ...

    嵌入式C笔试题.doc

    7. 指针数组:`ptr`是一个指向数组的指针,首先打印第一行的第二和第三个元素(2, 3),然后`ptr`加1指向第二行,再打印第二行的第二和第三个元素(5, 6)。输出为(a) 2 3 5 6。 8. 函数(未提供具体内容,但可以...

    java 线程 基础

    这个题目要求创建三个线程,每个线程都会打印出即将进入睡眠状态的消息,并随机休眠0到5秒。线程被唤醒后,会显示线程名称并表明已完成睡眠,然后终止。以下是实现这个功能的代码示例: ```java import java.util....

    基于ARM的嵌入式系统开发与实例

    ARM提供了多种不同系列的处理器核心,如Cortex-A(应用处理器)、Cortex-R(实时处理器)和Cortex-M(微控制器),以满足不同性能需求。 二、嵌入式系统概述 嵌入式系统是将计算能力内置于特定设备中的系统,用于...

    百度2016研发工程师在线模拟笔试及答案.pdf

    一个线程无法直接终止另一个线程的运行,但抛出异常可以导致线程结束。其他选项如高优先级线程就绪、调用`sleep()`或创建新线程都不能直接终止当前线程。 11. Redhat 9安装方式: Redhat 9支持通过HTTP进行网络...

Global site tag (gtag.js) - Google Analytics