自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 volatile

线程引用isRunning 变量的时候,会copy一份到独立内存空间当中,所以线程不会停止,加上volatile,改变的值就会进入独立内存空间。也就是说volatile的作用只是让变量在多个线程中的可见,不具备原子性。而atomicInteger具备原子性,所以在该例子里可以得到最终结果10000,但是atomicInteger只能保证一个方法的原子性,若里面出现多个则不能保证,只能用synchrn

2017-10-09 22:02:25 236

原创 synchrnized细节1

1。锁重入 第二个小例子: 其实也就是多个方法都要加锁。存储过程例子:

2017-10-08 21:01:12 241

原创 脏读1

getvalue()方法必须要加synchronized 要不然其他线程来获取的时候,得到的就是修改之前的结果。 oracle数据库有个优点,就是一致读,数据如果异常会放在undo里面,实在不行就会报snapshottooold错误,也就是得不到错误的结果。

2017-10-08 20:27:54 216

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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