缓存池在项目开发中时长用到,在查看了一下相关的资料,发现很多博客中对缓存池的实现有存在着一些漏洞,今天花了点时间梳理一下,用JDK1.5中并发包中的ReentrantReadWriteLock实现一个从缓存中获取数据的例子。本人技术有限,如果读者发现Bug,敬请指出。程序员不喜欢多说,直接上代码 代 ...
分类:
编程语言 时间:
2017-11-21 23:51:32
阅读次数:
211
1. java.util.concurrent - Java 并发工具包Java 5 添加了一个新的包到 Java 平台,java.util.concurrent 包。这个包包含有一系列能够让 Java 的并发编程变得更加简单轻松的类。在这个包被添加以前,你需要自己去动手实现自己的相关工具类。本文我 ...
分类:
编程语言 时间:
2017-11-11 18:55:52
阅读次数:
207
一 异步别再用new Thread了 你还在上面这么用吗,太low 了。弊端多多: 1. 每次new Thread新建对象性能差。 2. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。 3. 缺乏更多功能,如定时执行、定期执行、线程中断。 相比new T ...
分类:
编程语言 时间:
2017-11-09 14:49:00
阅读次数:
235
一 引言 在多线程的环境下,对同一份数据进行读写,会涉及到线程安全的问题。比如在一个线程读取数据的时候,另外一个线程在写数据,而导致前后数据的不一致性;一个线程在写数据的时候,另一个线程也在写,同样也会导致线程前后看到的数据的不一致性。这时候可以在读写方法中加入互斥锁,任何时候只能允许一个线程的一个 ...
分类:
编程语言 时间:
2017-11-08 20:00:03
阅读次数:
208
林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 写在前面的话:此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢?如果你觉得此文很简单,那推荐你看看Java并发包 ...
分类:
编程语言 时间:
2017-10-29 11:17:06
阅读次数:
201
众所周知,java1.5并发包通过volatile+CAS原理提供了优雅的并发支持。今天仔细想想.net也有volatile关键字保证内存的可见性,同时也有Interlocked提供了CAS的API,因此突发奇想——对着java并发包写一下.net并发包。第一步就是原子类型的实现(.NET目前还没有 ...
分类:
编程语言 时间:
2017-10-18 23:19:01
阅读次数:
363
并发包中引入了线程池,好处是: 可以制定灵活的运行策略,比如single的,保证一个一个运行,fixed的可以保证一次只运行一定数量的线程 线程池可以将线程关闭 线程池可以使线程之间进行通讯 锁的好处是: 有公平锁,可以实现先来的线程,先执行 通过lock(reentrantelock)和condi ...
分类:
其他好文 时间:
2017-10-18 00:11:02
阅读次数:
208
林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 写在前面的话:此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢?如果你觉得此文很简单,那推荐你看看Java并发包 ...
分类:
编程语言 时间:
2017-10-16 13:43:33
阅读次数:
230
Lock接口 锁是用来控制多个线程访问共享资源的方式,锁能够防止多个线程同时访问共享资源。在Lock接口出现之前,Java是靠synchronized关键字实现锁功能的。在Java SE5后,并发包中新增了Lock接口用来实现锁功能,Lock在使用时需要显式地获取和释放锁。虽然缺少隐式获取锁和释放锁 ...
分类:
编程语言 时间:
2017-10-11 14:02:48
阅读次数:
191
线程组ThreadGroup表示一组线程的集合,一旦一个线程归属到一个线程组之中后,就不能再更换其所在的线程组。那么为什么要使用线程组呢?个人认为有以下的好处:方便统一管理,线程组可以进行复制,快速定位到一个线程,统一进行异常设置等。ThreadGroup它其实并不属于Java并发包中的内容,它是j ...
分类:
编程语言 时间:
2017-09-29 01:36:40
阅读次数:
170