`
素寒丶玩玩
  • 浏览: 19386 次
  • 性别: 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多线程的相关知识点。 一、线程的创建与启动 1. 实现Runnable接口: 创建一个类实现`Runnable`接口,重写`run()`方法。然后创建`Thread`对象,将Runnable实例作为参数传递给构造器,最后调用...

    java 多线程小例题

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

    java线程有关例题

    总结来说,Java线程机制提供了强大的并发处理能力,通过理解并熟练掌握上述知识点,开发者能够编写出高效、稳定的多线程程序,应对各种复杂的并发场景。在实际编程中,合理地使用线程和同步机制,不仅可以提高程序的...

    java 例题 java 例题java 例题java 例题java 例题

    这些例题可能涵盖了从简单的数据类型、控制结构到复杂的多线程、网络编程等多个方面。 在Java的学习过程中,了解和实践这些例题至关重要,因为它们能帮助我们巩固理论知识,提升实际编程技能。例如,你可能会遇到...

    java程序设计例题全集

    标题中的“java程序设计例题全集”意味着这份资料包含了大量关于Java编程的实践题目,这些题目可能包括基础语法、类与对象、异常处理、集合框架、多线程、网络编程等多个方面,是学习和巩固Java编程技能的理想资源。...

    java经典例题,包含很多经典例题。

    同时,我们还需要了解 Java 语言的异常处理机制和多线程编程。 Java 语言高级知识 在 Java 语言高级知识中,我们需要了解 Java 语言的高级概念,包括泛型编程、Lambda 表达式、函数式编程等。同时,我们还需要了解...

    JAVA程序编程例题

    6. **多线程**:Java提供了丰富的多线程支持,包括Thread类和Runnable接口。通过实例,学习者可以理解线程同步、互斥锁、条件变量等概念,以及如何处理并发问题。 7. **网络编程**:Java的Socket编程允许创建客户端...

    JAVA经典程序例题

    6. **多线程**:Java支持并发编程,通过Thread类和Runnable接口可以创建和管理线程。理解同步和互斥的概念,以及synchronized关键字的应用,对于优化性能至关重要。 7. **反射**:反射是Java的一个高级特性,允许...

    Java实用教程例题代码.zip

    6. **多线程**:Java提供内置的Thread类和Runnable接口来实现并发执行。 7. **IO流的NIO(New IO)**:一种非阻塞的I/O模型,提高了Java处理I/O操作的效率。 8. **反射**:允许在运行时检查和修改类、接口、字段和...

    java界面设计例题代码new

    5. 多线程:在某些情况下,界面更新可能需要在后台线程进行,以防止阻塞用户界面。`ex7.9.5`可能涉及到如何在AWT中使用多线程来确保GUI的流畅性。 6. 窗口管理:在`ex7.8.20`和`ex7.9.15`中,可能涉及到如何创建和...

    经典的java例题,常用

    6. **多线程**:Java提供了丰富的多线程支持,例题可能包含如何创建和管理线程,同步与互斥的概念,以及并发编程中的锁机制。 7. **设计模式**:设计模式是解决常见编程问题的通用方案,如单例模式、工厂模式、装饰...

    java源码150个例题

    6. ** chap11 **:在这一章,学习者可能将学习到多线程编程,包括Thread类的使用、synchronized关键字、volatile关键字以及线程间通信的方法。 7. ** chap12 **:最后,可能是高级主题,比如反射机制,允许程序在...

    张思民JAVA例题

    8. **第十章例题**:可能包含多线程的实现,线程的创建、同步控制(synchronized关键字、wait()、notify()方法)以及线程池的应用。 9. **第十一章例题**:可能涉及反射机制,如何在运行时获取类的信息,创建并调用...

    java 经典例题-j2se阶段各个知识点例题

    8. **多线程**:Java内置了多线程支持,通过`Thread`类或实现`Runnable`接口可以创建线程。理解线程的生命周期,同步机制(synchronized关键字、wait()、notify()等)以及线程池的概念。 9. **反射机制**:Java反射...

    java大学实用教程例题

    6. **多线程**:Java支持多线程编程,允许程序同时执行多个任务。你可以从例题中学习如何创建Thread对象,或者使用Runnable接口,以及线程间的同步和通信。 7. **函数式编程**:Java 8引入了Lambda表达式和Stream ...

    Java课本例题所有代码下载

    6. **多线程**:Java提供了内置的多线程支持。通过Thread类和Runnable接口,你可以学习如何创建和管理并发执行的任务。例子可能包含同步机制(如synchronized关键字,wait()和notify()方法)的使用。 7. **Swing与...

    coreJava的经典例题程序

    5. **多线程**:Java内置了多线程支持,可以同时执行多个任务,提高了程序的效率和响应性。 6. **丰富的库支持**:Java的标准库(Java API)提供了大量的类和接口,涵盖了网络、I/O、数据库连接、图形用户界面(GUI...

    Java全书的例程源程序 Java课本例题

    - **Runnable接口**:另一种实现多线程的方式,通过实现接口并将其传递给Thread类的构造函数。 - **同步机制**:synchronized关键字、wait()、notify()和notifyAll()方法,用于避免并发问题。 7. **网络编程** -...

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

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

Global site tag (gtag.js) - Google Analytics