`
素寒丶玩玩
  • 浏览: 18106 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 多线程例题

阅读更多

 

/**

 * Java多线程方面的编程笔试题

Java

 

写两个线程,一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。要求用线程间的通信。

 

注:分别给两个对象构造一个对象o,数字每打印两个或字母每打印一个就执行o.wait()。

 

在o.wait()之前不要忘了写o.notify()。

 *

 */

public class Test {

 

public static void main(String[] args) {

 

Printer p = new Printer();

 

Thread t1 = new NumberPrinter(p);

 

Thread t2 = new LetterPrinter(p);

 

t1.start();

 

t2.start();

 

}

 

}

 

class Printer {

 

private int index = 1;// 设为1,方便计算3的倍数

 

// 打印数字的构造方法,每打印两个数字,等待打印一个字母

 

public synchronized void print(int i) {

 

while (index % 3 == 0) {

try {

wait();

} catch (Exception e) {

}

}

 

System.out.print("" + i);

 

index++;

 

notifyAll();

 

}

 

// 打印字母,每打印一个字母,等待打印两个数字

 

public synchronized void print(char c) {

 

while (index % 3 != 0) {

try {

wait();

} catch (Exception e) {

}

}

 

System.out.print("" + c);

 

index++;

 

notifyAll();

 

}

 

}

 

// 打印数字的线程

 

class NumberPrinter extends Thread {

 

private Printer p;

 

public NumberPrinter(Printer p) {

this.p = p;

}

 

public void run() {

 

for (int i = 1; i <= 52; i++) {

 

p.print(i);

 

}

 

}

 

}

 

// 打印字母的线程

 

class LetterPrinter extends Thread {

 

private Printer p;

 

public LetterPrinter(Printer p) {

this.p = p;

}

 

public void run() {

 

for (char c = 'A'; c <= 'Z'; c++) {

 

p.print(c);

 

}

 

}

 

}

 

/*

 * 如果这题中,想保存需要打印的结果,可在Printer类里定义一个成员变量

 * 

 * String s = “”; //不写“”的话是null,null跟没有东西是不一样的,它会把null当成字符 =_=

 * 

 * 然后在两个print()方法里面,while循环后分别加上 s = s + ” “+i; 以及 s = s +” “+ c;

 */

 

分享到:
评论

相关推荐

    Java多线程 例题

    Java多线程 例题 &lt;br&gt;

    java 多线程小例题

    该程序采用良好的格式,美观的界面,通俗易懂,本例题是采用多线使一小球在界面不断移动

    java线程有关例题

    java线程 与动画相结合11.1 线程与线程类 11.2 线程的创建 11.3 线程的状态与调度 11.4 线程状态的改变 11.5 资源共享与对象锁 11.6 线程组

    讲给女朋友听的java多线程(2万字深入理解多线程,有实例代码辅助理解)

    读完本文大概需要30分钟左右,本文有大量的实例代码和典型例题帮助大家理解java多线程。虽然多线程比较难以理解,仅靠一篇文章恐怕搞不定。但读完本文最起码能让你搞懂java多线程的70%以上,至于熟练运用,还是得...

    Java重写重载线程

    描述了重写与重载,及线程的一个例题纠错

    计算机后端-Java-Java核心基础-第20章 多线程 15. 线程通信的例题.avi

    计算机后端-Java-Java核心基础-第20章 多线程 15. 线程通信的例题.avi

    计算机后端-Java-Java核心基础-第19章 IDEA的使用与多线程 18. 例题:继承Thread方式,多窗口卖票.avi

    计算机后端-Java-Java核心基础-第19章 IDEA的使用与多线程 18. 例题:继承Thread方式,

    计算机后端-Java-Java核心基础-第20章 多线程 17. 线程通信:生产者消费者例题.avi

    计算机后端-Java-Java核心基础-第20章 多线程 17. 线程通信:生产者消费者例题.avi

    java大学实用教程例题源码

    目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。  本书注重教材的可读性和可用性,许多例题...

    java知识重点讲解并有例题

    有IO,java的基本可重用类,布局管理器,多线程,哈希表,继承,可视化界面,内部类,向量,日期时间,等等

    java中的例题,适合初学者

    包含面向对象程序设计基础,图形用户界面设计,Java swing基础,Java图形与图像处理,多线程与异常处理 ,输入/输出流,网络通信,Java数据库连接,常见数据结构及算法分析,J2ME程序设计基础等章节的例子。为doc...

    java实战练习+ 从”helloworld"到“大型病毒传染”难度“ + Java初学者 + Java习题

    3. 题目考察点含有( 类,继承,多态,异常,多线程等等)语法知识细节。让知识的体系更加牢固。 注意: 题目内部有代码提示,并附着答案,可以进行私信交流,有需要的可以向我要无答案附着版本。

    Sun公司最新的Java培训教程(中文版).pdf

    多线程和网络的支持等。本课程包括了参加SUN Certified Java Programmer 和SUN Certified Java Developer 考试所必备的知识。 一、课程概述 课程概述 本课程主要包括以下内容: - Java编程语言句法 - 应用...

    Java2实用教程(第三版)

    第9章 Java多线程机制 第10章 输入输出流 第11章 Java网络的基本知识 第12章 Java Applet基础 第13章 常见数据结构的Java实现 第14章 图形与图像 第15章 Java数据库连接(JDBC) 第16章 Java与多媒体 第17章 Java ...

    Java2实用教程(第三版).part1.rar

    第9章 Java多线程机制 第10章 输入输出流 第11章 Java网络的基本知识 第12章 Java Applet基础 第13章 常见数据结构的Java实现 第14章 图形与图像 第15章 Java数据库连接(JDBC) 第16章 Java与多媒体 第17章 Java ...

    北大Java语言程序设计(ppt课件)

    第五讲 输入/输出处理 第六讲 例外处理(Exception) 第七讲 多线程 第八讲 图形用户界面与事件处理 第九讲 Java Applet 第十讲 网络通信 第十一讲 J2EE...

    Java案例精粹150例代码

    本书通过150个实例全面介绍了Java编程基础、多线程编程、输入/输出编程、Applet编程、Swing图形界面编程、多媒体和图形图像处理编程、网络编程、数据库编程、B/S结构编程、Web Service编程、EJB编程、安全性编程、...

    SUN JAVA 培训专用教材

    并讲授Java编程语言句法和面向对象的概念,以及Java运行环境的许多特性, 对图形用户界面(GUIs)、多线程和网络的支持等。本课程包括了参加SUN Certified Java Programmer和SUN Certified Java Developer考试所必备...

    Java语言实用教程

    本书主要内容有面向对象基础、Java语言概述、Java语言基础、Java面向对象技术、常用类库、异常处理、图形界面编程、多线程、输入输出、JDBC与数据库、网络编程、Swing编程等。本书注意理论与实际的结合,例题短小、...

    JAVA经典编程300例

    Java经典编程300例》内容包括java语言概述、eclipse开发工具、java语言基础、流程控制、数组及其常用操作、面向对象入门、面向对象进阶、字符串与包装类、java集合类框架、常用数学工具类、错误处理、输入/输出、...

Global site tag (gtag.js) - Google Analytics