JAVA多线程编程:wait() 和 notify() 方法示例
来源:互联网 发布:淘宝卖家入口在哪 编辑:程序博客网 时间:2024/06/05 15:41
一个简单的生产者和消费者的之间的产品流通示例,利用java多线程编程,产生生产者和消费者两个子线程访问同步方法。演示了wait()和notify()方法的基本含义 ^_^ 代码如下:
JAVA多线程编程:wait() 和 notify() 方法示例
下载: Counter.java
- class Counter {
- int n;
- boolean valueSet = false ;
- synchronized int get() {
- if (!valueSet)
- try{
- wait();
- }catch(InterruptedException e){
- System.out.println("InterruptedExcepitons Caught in Get Methord");
- }
- System.out.println("Got: "+n);
- valueSet = false ;
- notify();
- return n;
- }
下载: ProducerAndCustomer.java
- synchronized void put(int n){
- if(valueSet)
- try{
- wait();
- }catch(InterruptedException e){
- System.out.println("InterruptedException Caught in Put Methord");
- }
- this.n = n;
- valueSet = true ;
- System.out.println("Put: "+n);
- notify();
- }
- }
- class Producer implements Runnable {
- Counter counter;
- Producer(Counter counter){
- this.counter = counter ;
- new Thread (this,"Producer").start();
- }
- public void run(){
- int i = 0;
- while(true){
- counter.put(i++);
- }
- }
- }
- class Customer implements Runnable{
- Counter counter ;
- public Customer(Counter counter){
- this.counter = counter ;
- new Thread(this,"Customer").start();
- //this.Thread.sleep(10000);
- }
- public void run (){
- while(true){
- counter.get();
- }
- }
- }
- public class ProducerAndCustomer {
- public static void main(String [] args){
- Counter counter = new Counter();
- new Producer(counter);
- new Customer(counter);
- System.out.println("haha");
- }
- }
- JAVA多线程编程:wait() 和 notify() 方法示例
- Java多线程wait()和notify()
- 浅析Java多线程synchronized关键字、wait和notify方法
- 多线程编程 -wait(),notify()/notityAll()方法
- 多线程编程 -wait(),notify()/notityAll()方法
- 多线程编程 -wait(),notify()/notityAll()方法 .
- 多线程编程 -wait(),notify()/notityAll()方法
- Java 多线程编程 wait()、notify() -- JAVA 进阶
- Java Thread wait, notify和notifyAll示例
- java多线程:wait(),notify(),notifyAll()方法
- 初识java多线程的wait(), notify()方法
- 多线程中的wait()和notify()方法
- Java多线程wait/notify
- Java多线程之wait()和notify()
- Java多线程之wait()和notify()
- java多线程notify和wait 转载
- [转]java多线程同步,wait和notify
- Java多线程3:wait、notify和notifyAll
- Ubuntu中用apt安装和卸载软件
- 经典相互作用图
- Linux 常用C函数(内存及字符串操作篇2)
- 在统计每月信息的时候,有时候该月没有信息,但是还是显示出来
- 深入理解sizeof
- JAVA多线程编程:wait() 和 notify() 方法示例
- WCDMA与CDMA2000网络结构比较
- DIV+CSS不适合中国中小型网站
- XML实例入门笔记(01) - 序
- 嵌入式C语言编程要点
- 解决asp.net 连接access中的相对路径问题
- 《Beginning Python From Novice to Professional》学习笔记十:Exception
- Ubuntu清理系统
- Date类型,存入数据库