concurrency
airu
这个作者很懒,什么都没留下…
展开
-
java concurrency
并发编程是一个趋势。多核的出现,使得并发编程越来越重要。这里对于多核处理器来说,如果跑单一线程的程序,那么利用率是很低的。多线程正好成了人们压榨计算机的利器。 多线程是好的,可是,多线程也引入了一些复杂的东西。比如说同步。 记得在学操作系统的时候,就学过类似的东西,对临界资源的访问,PV操作啊什么的。万变不离其宗,多线程编程也同样如此。 java多线程实现是很简单的,大家也都知道sync...2012-11-01 23:01:21 · 128 阅读 · 0 评论 -
java-concurrency 之 JMM
自从JSR-133在jdk5中完善后,java的并发能力大大提升。我们可以使用concurrent包来完成很多线程工作,而不用处理线程所带来的复杂性。这里要说的自然是JMM。这是JSR-133中描述的,并且在jdk1.5后得到完善。 如果抛开JMM谈java并发,就显得毫无底气了。因为JSR-133正是为了线程才针对JMM的规范。 如果你了解计算机的缓存机制,其实JMM很好理解。为了使...2012-11-02 11:31:18 · 86 阅读 · 0 评论 -
CountDownLatch 理解
Latch 在英文中是门阀的意思。也就是控制门的开关的关键。 所以,Latch在并发中,就是控制线程访问的。《JCP》中列举了几点用途: 1,等待资源初始化。 2,等待依赖服务启动。 3,等待队友加入活动。 具体的Latch有 CountDownLatch,如果只是说功能什么的,还是比较疑惑。 CountDownLatch 的功能就是初始化一个值,每次调用countDown方法时这...2012-11-26 14:20:26 · 113 阅读 · 0 评论 -
并发与缓存——读《JCP》
缓存方法在我们编程中经常遇到。例如一个通过很复杂计算的值,但是一旦计算以后,就不再变化,我们可以用缓存存放。最简单的写法如下: [code="java"] Object value = null; if ( (value = cache.get(key)) == null ) { value = compteValue(key); } cache.put(key, value...2012-11-26 20:57:42 · 88 阅读 · 0 评论