`

JAVA多线程,交替打印数字字母

    博客分类:
  • java
 
阅读更多
class InsteadPrint {

	public static class PrintABC implements Runnable {

		Object obj = null;

		public PrintABC(Object obj) {
			this.obj = obj;
		}

		@Override
		public void run() {
			synchronized (obj) {
				char ch = 'A';
				for (int i = 0; i < 26; i++) {
					System.err.println((char) (ch + i));
					try {
						obj.notifyAll();
						obj.wait();
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			}

		}
	}

	public static class Print123 implements Runnable {

		Object obj = null;

		public Print123(Object obj) {
			this.obj = obj;
		}

		@Override
		public void run() {
			synchronized (obj) {
				for (int i = 0; i < 100; i++) {
					System.err.println(i);
					if (i % 2 == 1) {
						try {
							obj.notifyAll();
							obj.wait();
						} catch (InterruptedException e) {
							e.printStackTrace();
						}
					}
				}

			}
		}
	}

	public void test() {
		Object obj = new Object();
		new Thread(new Print123(obj)).start();
		new Thread(new PrintABC(obj)).start();
	}
}
分享到:
评论

相关推荐

    java多线程每个线程挨着打印ABC的4种实现方式

    java多线程每个线程挨着打印ABC的4种实现方式,有4个线程t1、t2、t3、t4,t1打印A后t2打印A再t3打印A再t4打印A,然后从新回到t1打印B再t2打印B...t4打印B... 4个线程轮流打印abc... 一个线程可以理解为一个人,打印...

    java多线程实现轮流打印ABC

    使用多线程和阻塞队列实现了ABC字母按顺序轮流打印

    js代码-实现类似与java的多线程打印 实现交替打印1a2b3c4

    这段代码中,`printNumberAndLetter`函数用于打印数字和字母,`main`函数则按顺序调用这些函数,模拟了交替打印1a2b3c4的过程。 6. README.txt - 这个文件通常包含项目或代码的说明,可能包含了关于如何运行或...

    PrintNumLetter.java

    java多线程,不使用锁机制,通过使用whlie循环实现交替打印数字和字母。

    JAVA经典教材笔记

    - 示例分析:两个线程交替打印数字。 - 线程同步:解决线程安全问题。 - **同步与死锁** - 同步的实现:synchronized关键字。 - 死锁的概念与预防措施。 - **线程操作案例—生产者和消费者** - 生产者-消费者...

    迅雷技术招聘java试题

    【Java多线程编程】 Java中的多线程可以通过继承Thread类或实现Runnable接口来创建。题目要求实现线程交替打印"ABCABC…",这通常需要使用同步机制,如synchronized关键字或wait/notify机制。 【字符串处理】 题目...

    java面向对象程序设计习题大全

    此外,书中还涵盖了一些高级主题,如多线程、异常处理、文件操作和GUI设计等。 #### 第一章:Java基础 **知识点概述**: 1. **标识符**: - 标识符是用于唯一识别变量、方法和类等的名字。 - 标识符区分大小写...

    快手真实面试题,不多,但真实

    快手真实面试题,不多,但真实 本资源主要面向 Java 面试,涵盖了 Java 基础、 Android 开发、数据结构、算法和面试技巧等方面的知识点。 一、Java 基础 1. 面向对象的三大特性:封装、...5. 两个线程交替打印数字

    Java 核心知识点整理 300 页1

    这里我们将深入探讨Java虚拟机(JVM)的相关概念,特别是关于内存管理和线程的部分,这些是Java程序高效运行的基础。 首先,JVM(Java Virtual Machine)是Java程序执行的平台,它为Java代码提供了跨平台的运行环境...

    2021-2022计算机二级等级考试试题及答案No.4883.docx

    19. 线程和通信:多线程应用程序中,线程交替执行,并且可以通过同步机制进行通信。 20. 行内元素:div是块级元素,而非行内元素。 21. 线程启动:创建线程对象并不立即开始执行,需要调用start()方法。 22. 图形...

    2021-2022计算机二级等级考试试题及答案No.17725.docx

    7. 线程:线程是程序中的执行流,多线程应用程序中,线程交替执行,可以通过通信进行交互。 8. 变量命名规则:变量名可以包含字母、数字和下划线,但不能以数字开头(B.C24是合法的)。 9. Excel:Excel是Windows...

    2021-2022计算机二级等级考试试题及答案No.9208.docx

    23. 多线程:在多线程应用程序中,线程会交替执行,线程间可以通过特定机制(如共享内存、消息传递等)进行通信。 24. 赋值语句:在某些编程语言中,如Pascal,`STORE 1 TO X, Y`是正确的赋值语句,将1同时赋值给X...

    2021-2022计算机二级等级考试试题及答案No.10207.docx

    19. 线程与通信:多线程应用程序中,每个执行单元(线程)可以交替执行,线程间可以通过各种同步机制进行通信。 20. Hashtable:在Java中,Hashtable是一个键值对存储的容器,get()方法用于根据键获取对应的值。 ...

    2021-2022计算机二级等级考试试题及答案No.11302.docx

    11. 在多线程编程中,`synchronized`关键字用于定义临界段,确保共享对象的操作同步。 12. 一个源文件中可以包含多个类,但只能有一个公共类(在C#中)或一个顶级类(在Java中)。 13. "查询"视图不属于Access的...

    2021-2022计算机二级等级考试试题及答案No.5474.docx

    8. **实现多线程**:使用Runnable接口创建线程,主要步骤包括实现Runnable接口,实现run()方法,并在start()方法中创建并启动新线程,选项D描述了这一过程。 9. **ASCII码**:ASCII码中,大写字母'A'的值为65,而'Z...

    2021-2022计算机二级等级考试试题及答案No.18388.docx

    9. 线程与通信:在一个应用程序中,线程是并发执行的基本单位,它们可以交替执行,且线程之间可以通过各种机制(如共享内存、消息传递等)进行通信。 10. Select语句:在编程语言中,Select通常用于条件判断,与End...

    2021-2022计算机二级等级考试试题及答案No.2868.docx

    这些线程会交替执行,并且彼此之间可以进行通信。 - **填空题答案**:线程、通信 ### 6. 字段名称命名规则 - **规则介绍**:字段名称应该遵循一定的命名规则,比如长度限制、是否可以包含特殊字符等。 - **错误选项...

Global site tag (gtag.js) - Google Analytics