涉及到并发的一些关键字理解

1 volatile关键字的理解
Java内存模型规定所有的变量都是存在主存中,每个线程都有自己额工作内存。线程对变量的所有操作都必须在工作内存中进行,而不能直接对主存进行操作,并且每个线程不能访问其他线程的工作内存
Java中只有简单的读取、赋值(而且必须是将数字赋值给某个变量,变量之间的相互赋值不是原子操作)才是原子操作
Java提供了volatile关键字来保证可见性和提供一定的有序性,并不能保证原子性
具体见http://www.cnblogs.com/dolphin0520/p/3920373.html
2atomic关键字的理解
Atomic内部使用到了volatile关键字同时使用CAS无锁算法保证原子性 具体见http://www.cnblogs.com/programerlrc/articles/4936369.html
3copyonwrite是一种读写分离的思想,读和写不同的容器 具体见http://ifeve.com/java-copy-on-write/
4CountDownLatch http://www.itzhai.com/the-introduction-and-use-of-a-countdownlatch.html#read-more
5ConCurrentHashmap 采用锁分离技术 http://blog.csdn.net/wl_ldy/article/details/7228127
6synchronized和lock
http://www.cnblogs.com/dolphin0520/p/3923737.html
http://www.cnblogs.com/dolphin0520/p/3923167.html
lock中例子1,lock()的正确使用方法出现问题的解释,当每一个新线程被创建时,它都将得到它自己的PC寄存器以及一个java栈。如果线程正在执行的一个java方法,那么PC寄存器的值将总是指示下一条将被执行的指令,而它的java栈则总是存储该线程中java方法调用的状态——包括它的局部变量,被调用时传进来的参数,它的返回值,以及中间结果等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值