Java
sh苏苏
写的一手好bug
展开
-
Java并发学习
为什么存在并发问题 单核单线程的速度过低,人们为了满足高的并发量,同一时间可以做很多事情,于是有了多核多线程,但是多核多线程情况下,每个线程的缓存都可能不同,以及每一级缓存的速率也是不一样,这样就会导致一系列的并发问题,程序得到获取的数据,并不总是想要的数据,并发问题总共提现在三个方面,原子性、可见性、有序性。 推荐一篇博客讲的是并发背景 https://blog.csdn.net/just...原创 2019-05-21 10:03:34 · 89 阅读 · 0 评论 -
并发学习-final
对于 final 域,编译器和CPU要遵守两个重排序规则: final 写:“构造函数内对一个final域的写入”,与“随后把这个被构造对象的引用赋值给一个引用变量”,这两个操作之间不能重排序。 final 读:“初次读一个包含final域的对象的引用”,与“随后初次读对象的final域”,这两个操作之间不能重排序。 写 final 域的重排序规则禁止把 final 域的写重排序到构造函数之外。...原创 2019-05-22 10:22:36 · 114 阅读 · 0 评论 -
不用synchronized和lock,实现线程安全的单例模式
转自(https://blog.csdn.net/vincentff7zg/article/details/58057668) 总结: 单例模式必然会被多个线程访问。多线程访问一定要注意锁的问题。参考博主之前分享的转载文章《java中的锁》,有几种方式如下: 自旋锁类锁和对象锁共享锁和排它锁偏向锁互斥锁闭锁活锁分段锁无锁 无状态编程线程本地存储volatileCAS协程...转载 2019-05-22 11:32:32 · 491 阅读 · 1 评论