但凡看github上的开源项目,必有所获,
之前我一直想看那种大型高端项目的源码,但是一方面原理复杂,跟踪困难,另一方面也是自身水平达不到,就如那品茶,没有那个底蕴,再怎么品那也是牛嚼牡丹,暴殄天物.
于是我就决定从一个功能较单一的小项目开始着手.
因为现在我们公司的id生成器是利用雪花算法保证的 所以我就想研究一下id生成器相关的项目
找来找去,就找到了tinyid.
果然受益匪浅!
刚开始看没多久,就发现了一个自己没用过的类,AtomicLong.
查了一下,原来是为了保证原子性.
在32位操作系统中,64位的long 和 double 变量由于会被JVM当作两个分离的32位来进行操作,所以不具有原子性。而使用AtomicLong能让long的操作保持原子型。
未完待续
原文:https://www.cnblogs.com/tyoutetu/p/10651856.html