生产-消费模型
来源:互联网 发布:帝国cms 建站交流 编辑:程序博客网 时间:2024/04/30 13:59
生产者也就是产生数据的某个事件,
消费者即为消费数据,处理数据的事件。
在绘制离子仿真过程中,简单实现这样的效果
有许多个线程如生产线程createThread、绘图线程drawThread、移动线程moveThread、颜色线程colorThread、大小线程sizeThread,那么这其中的生产者则是生产线程,负责在鼠标点击触发事件是产生小球对象 ,并将其放入ArrayList中,
消费则是其余的线程,各自负责不同的功能,将ArrayList中的数据取出进行修改。
那么在某个线程中我要获取这个ArrayList中的数据个数,能准确获取的到么?
就好像商场里的顾客,在某一时刻,你能统计出商场里顾客的总数么?很显然是不太可能的,所以想要获取arraylist中某个时刻的数据个数,那么得让其他的生产消费者不能对arraylist进行操作,所以就有synchronized关键字。
synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种:
1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;
2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;
3. 修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;
4. 修改一个类,其作用的范围是synchronized后面括号括起来的部分,作用主的对象是这个类的所有对象
那么,我们在线程中对arraylist加锁,这样该线程操作arraylist时其他线程就不能对其进行操作。
当我们在某个线程中需要调用arraylist对象时,只有等待拿到锁的那个线程操作完成后,才可以对arraylist进行操作,其他线程访问arraylist对象时就会阻塞,所以,我们可以在某一时刻准确获取到arraylist中的数据个数。
- 生产消费模型demo
- 生产-消费模型
- 线程_生产消费模型
- 程序设计模型之生产消费模型
- 生产/消费模型的java实现
- java 线程“生产/消费”模型1
- java线程“生产/消费”模型2
- 生产消费模型实例C++11
- wait/notify实现生产消费模型
- 多线程—NSThread实现生产消费模型。
- 生产/消费模型的java实现
- 阻塞队列实现--生产消费模型
- Wait, notify实现的生产消费模型
- GO语言通用生产消费模型
- 生产消费
- 生产消费
- 通过生产-消费模型了解C#线程同步
- Java中线程知识总结(生产消费模型)
- 深入理解JVM(七)——虚拟机类加载机制
- 快速排序(C实现
- c++类模板(二)
- CSS下拉菜单页面随动--2017.07.22pm
- QGIS源码编译
- 生产-消费模型
- HDU 1878-欧拉回路(简单的欧拉回路判断)
- Android Wi-Fi Wi-Fi性能传输速率限值
- JavaScript初步了解
- Log4J按照不同包名输出日志
- 死锁
- C++ main函数中参数argc和argv含义及用法
- STM32直接存储器访问DMA
- JS遍历