学习java过程中关于生产者消费者模型的一些心得
来源:互联网 发布:蜜桃影院大米原版源码 编辑:程序博客网 时间:2024/06/04 19:27
生产者消费者模型(同时有多个线程对同一资源进行访问,并进行不同的操作)
这里面一共有三个对象:
1、生产者对象
2、产品对象(资源)
3、消费者对象
无库存模型 要点:
同一时间内只能有一个生产者 ;同一时间内只能有一个消费者;生产者在生产的同时消费者不能消费;消费者消费的时候生产者不能生产。这就要求我们在编码的时候要对相应的生产方法和消费方法进行上锁。
上锁的时候要注意:
1、给两个方法上锁用的锁对象要用同一个锁对象(可以给这两个方法都传递过来同一个产品对象作为锁对象,字符串、类文件也都可以用为锁对象,还可以调用Lock方法)
2、锁的范围不能过大,否则会出现重复
当消费者发现没有产品、或者生产者发现有产品时可以使用调用wait()方法使当前对象的线程释放锁并进入阻塞状态,知道其他线程调用同一锁并调用notify()或者notifyAll()方法为止。
notify():唤醒同一对象锁中调用wait()的第一个线程。
notifyAll():唤醒同一对象中所有调用wait()方法的线程,优先级最高的线程先被唤醒并执行。
0 0
- 学习java过程中关于生产者消费者模型的一些心得
- JAVA-多线程机制中关于生产者消费者模型
- JAVA学习笔记(四十二)-生产者消费者模型
- 关于生产者与消费者模型的概念
- java生产者消费者模型
- 关于生产者-消费者问题的一些思考
- 生产者-消费者模型的Java实现
- 生产者-消费者模型的Java实现
- 生产者-消费者模型的java实现
- java版的生产者消费者模型
- 生产者-消费者模型的Java实现
- 生产者-消费者模型的Java实现
- 基于JAVA实现的生产者消费者模型
- java线程的生产者消费者模型
- 生产者-消费者模型的Java实现
- Java线程----生产者消费者模型
- java实现生产者消费者模型
- java多线程生产者、消费者模型
- C++文件读写详解(ofstream,ifstream,fstream)
- Linux中vi设置行号,设置tab一键4格
- adjacency_matrix & adjacency_list
- Linux 动态库剖析
- 嵌入式学习--step6--综合蜂鸣器/按键与跑马灯实验
- 学习java过程中关于生产者消费者模型的一些心得
- HDU 1222Wolf and Rabbit
- HDU 5532 Almost Sorted Array(状态压缩DP)
- 分段和分页内存管理
- HDU 1536 S-Nim
- Android RSA加密解密
- C++学习重点分析
- Android之远程服务器存储
- 在 C# 异步方法中使用 out/ref 参数机制