摘要:
单例模式,最常见的就是饥饿模式和懒汉模式,饥饿模式直接实例化对象,懒汉模式在调用方法时进行实例化对象(如果有了就不创建了)。在多线程模式中,考虑到性能和线程安全问题,我们一般选择下面两种比较经典的单例模式,在性能提高的同时,又保证了线程安全。 dubble check instance 两层的if, 阅读全文
摘要:
ThreadLocal概念:线程局部变量,是一种多线程并发访问变量的解决方案。与其synchronized等加锁方式不同,ThreadLocal完全不提供锁,而是用以空间换时间的手段,为每个线程提供变量独立的副本,以保证线程安全。从性能上来说,ThreadLocal不具有绝对优势,在并发不是很高的时 阅读全文
摘要:
使用wait/notify模拟queue BlockingQueue:顾名思义,首先它是一个队列,并且支持阻塞的机制,阻塞的放入和得到数据。我们要实现LinkedBlockingQueue,下面两个简单的方法put和take。 put(anObject):把anObject加到BlockingQue 阅读全文
摘要:
线程通信的概念: 线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体,线程间的通信就成为整体的必用方式之一。当线程存在通信指挥,系统间的交互性会更强大,在提高CPU利用率的同时还会使开发人员对线程任务在处理的过程中进行有效的把控与监督。 使用wait/notify方法实现线 阅读全文