不得不说,本人工作上很少有使用多线程技术的地方。由于本人工作上经常使用的是类似SSH等框架搭建MVC架构,所以更加习惯于编写一些优秀程序员所唾弃的样板式的代码。最近看了文海的多线程编程实战指南,瞬间眼前一亮。觉得有很多自己可以学习的,事实上,我已经在最近的项目中使用上了那本书介绍的两相终止模式、串行封闭模式、生产者消费者模式以及线程池等技术,确实在许多方面改进了我们服务端的吞吐量。说到这里本人吐槽...
分类:
编程语言 时间:
2016-04-29 16:36:55
阅读次数:
307
二、生产者消费者模式的学生类成员变量生产与消费demo, @Version2.0 在学生类中添加同步方法:synchronized get()消费者,synchronized set()生产者 最终版的代码中: 把student的成员变量给私有化了, 把设置和获取的功能给封装成了功能,并加了同步, ...
分类:
编程语言 时间:
2016-04-25 21:01:07
阅读次数:
178
一、生产者消费者模式的学生类成员变量生产与消费demo,第一版1、等待唤醒: Object类中提供了三个方法: wait():等待 notify():唤醒单个线程 notifyAll():唤醒所有线程2、为什么这些方法不定义在Thread类中呢? 这些方法的调用必须通过锁对象调用,而我们刚才使用的锁 ...
分类:
编程语言 时间:
2016-04-25 20:57:15
阅读次数:
214
BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。使用场景。 首先它是一个队列,而一个队列在数据结构中所起的作用大致如下图所示: 通过一个共享的队列,可以使得数据由队列的一端输入,从另外一 ...
分类:
其他好文 时间:
2016-04-24 23:13:24
阅读次数:
337
死锁产生的四个条件:1、互斥使用(资源独占)一个资源每次只能给一个进程使用.2、不可强占(不可剥夺)资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放.3、请求和保持(部分分配,占有申请)一个进程在申请新的资源的同时保持对原有资源的占有(只有..
分类:
编程语言 时间:
2016-04-24 18:57:59
阅读次数:
232
目录 前言 生产者和消费者 发布和订阅 注意 前言 随着业务复杂, 业务的项目依赖关系增强, 使用消息队列帮助系统降低耦合度.发布订阅(pub/sub)是一种消息通信模式,主要目的是解除消息发布者、消息订阅者之间的耦合 订阅分布本身也是一种生产者消费者模式, 订阅者是消费者, 发布者是生产者. 订阅 ...
分类:
其他好文 时间:
2016-04-24 07:33:46
阅读次数:
314
生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。
用信号量和锁机制、管道都可实现生产者和消费者之间的同步;
- wait() / notify()方法
- await() / signal()方法
- BlockingQueue
- Semaphore方法
- PipedInputStream / PipedOutputStream...
分类:
编程语言 时间:
2016-04-23 11:58:14
阅读次数:
235
观察者模式与消费者模式的区别 返回目录 再说概念 这两个模式确实有点相似,都为了实现程序的解耦产生的,观察者一般又称发布/订阅模式,它一般是有一个主题对象,然后有多个订阅者去关注它,当它的状态发生变化时,会自动通知这些订阅者;而消费者模式类似一个缓存队列的概念,它也称为生产者/消费者模式,生产者只负 ...
分类:
其他好文 时间:
2016-04-21 10:04:19
阅读次数:
182
返回目录 再说概念 这两个模式确实有点相似,都为了实现程序的解耦产生的,观察者一般又称发布/订阅模式,它一般是有一个主题对象,然后有多个订阅者去关注它,当它的状态发生变化时,会自动通知这些订阅者;而消费者模式类似一个缓存队列的概念,它也称为生产者/消费者模式,生产者只负责生产数据不去做处理(缓解高并 ...
分类:
其他好文 时间:
2016-04-20 17:40:52
阅读次数:
180
LabVIEW之生产者/消费者模式--队列操作 彭会锋 本文章主要是对学习LabVIEW之生产者/消费者模式的学习笔记,其中涉及到同步控制技术-队列、事件、状态机、生产者-消费者模式,这几种技术在在本章中都会有侧重点的进行介绍和总结! 队列同步技术-操作函数 同步控制技术可以实现在多个VI之间或者同 ...
分类:
其他好文 时间:
2016-04-05 10:47:47
阅读次数:
246