- 博客(3)
- 收藏
- 关注
原创 volatile
线程引用isRunning 变量的时候,会copy一份到独立内存空间当中,所以线程不会停止,加上volatile,改变的值就会进入独立内存空间。也就是说volatile的作用只是让变量在多个线程中的可见,不具备原子性。而atomicInteger具备原子性,所以在该例子里可以得到最终结果10000,但是atomicInteger只能保证一个方法的原子性,若里面出现多个则不能保证,只能用synchrn
2017-10-09 22:02:25 236
原创 脏读1
getvalue()方法必须要加synchronized 要不然其他线程来获取的时候,得到的就是修改之前的结果。 oracle数据库有个优点,就是一致读,数据如果异常会放在undo里面,实在不行就会报snapshottooold错误,也就是得不到错误的结果。
2017-10-08 20:27:54 216
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人