菜鸟很菜的专栏

AI、DL、RL

java并发(四) CopyOnWrite容器

感谢 清英 同学的投稿 Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用C...

2015-08-09 11:50:06

阅读数 310

评论数 0

java并发 非阻塞同步算法与CAS(Compare and Swap)无锁算法

锁(lock)的代价 锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,加锁、释放锁会导致比较多的上下文切换和调度延时,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对性能有很大的损失。用户态的锁虽然避免了...

2015-08-09 00:14:44

阅读数 2086

评论数 0

java并发(三) CAS操作

CAS操作 CAS是单词compare and set的缩写,意思是指在set之前先比较该值有没有变化,只有在没变的情况下才对其赋值。 我们常常做这样的操作 [java] view plaincopyprint? if(a==b) {      a++;  }   ...

2015-08-09 00:05:54

阅读数 421

评论数 0

java并发(二) volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。   volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情...

2015-08-09 00:00:50

阅读数 295

评论数 0

java并发(一) CountDownLatch (在多个线程都结束后再去执行某个任务)

一、使用java.util.concurrent.CountDownLatch   Java的util.concurrent包里面的CountDownLatch其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是同时只能有一个线程去减这个计数器里...

2015-08-08 23:54:23

阅读数 1019

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭