`

JAVA多线程通信

阅读更多

JAVA多线程通信

package com.frank.thread;
/**   
 * author:pengyan    
 * date:Jun 16, 2011    
 * file:ProducerAndCustomerTest.java   
 */  
public class ProducerAndCustomerTest {
	public static void main(String[] args) {
		//create an object 
		Queue q=new Queue();
		Productor p=new Productor(q);
		Customer c=new Customer(q);
		//p and c shared q
		p.start();
		c.start();
	}
}
class Customer extends Thread{
	Queue q;
	public Customer(Queue q) {
		this.q=q;
	}
	@Override
	public void run() {
		while (q.value<10) {//get the value
			System.out.println("Customer get "+q.get());
		}
	}
}
class Productor extends Thread{
	Queue q;
	public Productor(Queue q) {
		this.q=q;
	}
	@Override
	public void run() {
		for (int i = 1; i <=10; i++) {
			q.put(i);//product and show info
			System.out.println("Productor put "+i);
		}
	}
}
class Queue{
	int value;//count the mumber
	boolean bFull=false;//whether the cup is full
	public synchronized void  put(int i){
		if (!bFull) {
			value=i;//fill the cup 
			bFull=true;//it is full
			notifyAll();//notify other thread
			try {
				wait();//wait.......
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
	public synchronized int get(){
		if (!bFull) {
			try {
				wait();//if not full,wait until full
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		bFull=false;//after got the cup is empty
		notifyAll();//notify the Productor to put
		return value;//return the value
	}
}
 

控制台打印:

Productor put 1

Customer get 1

Customer get 2

Productor put 2

Customer get 3

Productor put 3

Customer get 4

Productor put 4

Customer get 5

Productor put 5

Productor put 6

Customer get 6

Productor put 7

Customer get 7

Customer get 8

Productor put 8

Customer get 9

Productor put 9

Customer get 10

Productor put 10


1
0
分享到:
评论

相关推荐

    java多线程通信图解

    一张图方便理解和掌握java 多线程之间通信的实质 java 多线程 其实就是每个线程都拥有自己的内存空间,多线程之间的通信,比例A线程修改了主内存(main方法的线程)变量,需要把A线程修改的结果同步到主线程中,...

    Java多线程通信机制研究.pdf

    "Java多线程通信机制研究" Java多线程通信机制是Java程序设计中的一个复杂技术,涉及到多个线程之间的通信和协作。多线程是一种程序运行机制,它允许在程序中并发执行多个指令流,每个指令流都被称为一个线程,彼此...

    JAVA多线程通信学习_服务器多线程通信_

    总的来说,Java多线程通信是一个复杂而重要的主题,涉及并发控制、线程安全、同步机制等多个方面。通过深入理解并熟练运用这些知识,开发者可以构建出高效、可靠的服务器多线程应用程序。在实际操作中,不断实践和...

    Java多线程通信服务端程序例子

    一个多线程通信服务端程序的简单例子,可以根据情况增加业务逻辑。

    多线程通信ThreadDemo

    在Java编程中,多线程通信是一个重要的概念,特别是在并发编程中。`ThreadDemo`示例可能演示了...通过分析和学习这个示例,开发者可以更好地理解和掌握Java多线程通信的实践技巧,从而编写出更加高效、可靠的并发程序。

    java多线程经典案例

    本案例将深入探讨Java多线程中的关键知识点,包括线程同步、线程通信和线程阻塞。 线程同步是为了防止多个线程同时访问共享资源,导致数据不一致。Java提供了多种同步机制,如synchronized关键字、Lock接口...

    Java多线程通信实现方式详解

    Java多线程通信实现方式详解 Java多线程通信是指在多线程编程中,线程之间的通信和同步机制。多线程通信的目的是为了让不同的线程之间能够共享数据和资源,实现线程之间的协作和同步。Java中提供了多种多线程通信...

    Java多线程知识点总结

    Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...

    java tcp多线程通信

    Java TCP多线程通信是网络编程中的一个重要概念,它结合了Java的Socket编程与多线程技术,使得多个客户端能够同时与服务器进行交互。在Java中,TCP(传输控制协议)提供了一种可靠的数据传输方式,确保数据的有序、...

    java多线程的讲解和实战

    Java多线程是Java编程中的重要概念,尤其在如今的多核处理器环境下,理解并熟练掌握多线程技术对于提高程序性能和响应速度至关重要。本资料详细讲解了Java多线程的原理,并提供了丰富的实战代码,非常适合Java初学者...

    Java多线程通信:交替打印ABAB实例

    Java多线程通信是并发编程中的重要概念,它允许不同线程之间进行协作,以便在共享资源时有序地执行任务。在这个场景下,我们关注的是如何实现两个线程交替打印"A"和"B",形成"ABABAB"这样的序列。 在给出的示例中,...

    Java多线程通信wait()和notify()代码实例

    "Java多线程通信wait()和notify()代码实例" Java多线程通信是Java编程语言中一个重要的概念,它允许程序同时执行多个线程,以提高程序的效率和响应速度。在Java中,多线程通信主要通过wait()和notify()方法实现,...

    java多线程Demo

    Java多线程是Java编程中的一个重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应速度。在Java中,实现多线程有两种主要方式:继承Thread类和实现Runnable接口。 1. 继承Thread类: 当我们创建一个新...

    汪文君JAVA多线程编程实战(完整不加密)

    Java多线程允许程序同时执行多个独立的代码段,这在处理大数据、网络通信、用户界面更新等场景中尤其有用。书中详细介绍了Java多线程的核心概念,如线程的创建、启动、同步、协作以及生命周期管理。读者将学习如何...

    深入浅出 Java 多线程.pdf

    在本文中,我们将深入浅出Java多线程编程的世界,探索多线程编程的基本概念、多线程编程的优点、多线程编程的缺点、多线程编程的应用场景、多线程编程的实现方法等内容。 一、多线程编程的基本概念 多线程编程是指...

    JAVA多线程编程技术PDF

    总结起来,“JAVA多线程编程技术PDF”涵盖了多线程的基本概念、同步机制、线程通信、死锁避免、线程池以及线程安全的集合类等内容。通过深入学习这份资料,开发者可以全面掌握Java多线程编程技术,提升程序的并发...

    java 多线程并发实例

    在Java编程中,多线程并发是提升程序执行效率、充分利用多核处理器资源的重要手段。本文将基于"java 多线程并发实例"这个主题,深入探讨Java中的多线程并发概念及其应用。 首先,我们要了解Java中的线程。线程是...

    JAVAJAVA多线程教学演示系统论文

    《JAVA多线程教学演示系统》是一篇深入探讨JAVA多线程编程的论文,它针对教育领域中的教学需求,提供了一种生动、直观的演示方式,帮助学生更好地理解和掌握多线程技术。这篇论文的核心内容可能包括以下几个方面: ...

    Java多线程编程核心技术_完整版_java_

    Java多线程编程是Java开发中的重要组成部分,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在Java中,多线程主要通过继承Thread类或实现Runnable接口来实现。本教程《Java多线程编程核心技术》将...

    Java 线程通信示例 源代码

    在Java编程中,多线程通信是一个至关重要的概念,特别是在设计高效的并发应用程序时。这个"Java线程通信示例源代码"很可能包含了演示如何在不同线程之间共享数据和协调执行顺序的实例。线程通信主要涉及两个核心概念...

Global site tag (gtag.js) - Google Analytics