雪花算法对System.currentTimeMillis()的优化

前面已经讲过了雪花算法,里面使用了System.currentTimeMillis()获取时间,有一种说法是认为System.currentTimeMillis()慢,是因为每次调用都会去跟系统打一次交道,在高并发情况下,大量并发的系统调用容易会影响性能(对它的调用甚至比new一个普通对象都要耗时,毕竟new产生的对象只是在Java内存中的堆中)。

聊聊雪花算法的细枝末节

前面文章在谈论分布式唯一ID生成的时候,有提到雪花算法,这一次,我们详细点讲解,只讲它。SnowFlake算法据国家大气研究中心的查尔斯·奈特称,一般的雪花大约由10^19个水分子组成。在雪花形成过程中,会形成不同的结构分支,所以说大自然中不存在两片完全一样的雪花,每一片雪花都拥有自己漂亮独特的形状

分布式唯一id如何生成?

分布式系统全局唯一的 id 是所有系统都会遇到的场景,往往会被用在搜索,存储方面,用于作为唯一的标识或者排序,比如全局唯一的订单号,优惠券的券码等,如果出现两个相同的订单号,对于用户无疑将是一个巨大的bug。

如何设计一个线程池

线程和线程池相关的知识,是Java学习或者面试中一定会遇到的知识点,本篇我们会从线程和进程,并行与并发,单线程和多线程等,一直讲解到线程池,线程池的好处,创建方式,重要的核心参数,几个重要的方法,底层实现,拒绝策略,参数设置,动态调整,线程隔离等等。

线程池那些事下篇

线程和线程池相关的知识,是Java学习或者面试中一定会遇到的知识点,本篇我们会从线程和进程,并行与并发,单线程和多线程等,一直讲解到线程池,线程池的好处,创建方式,重要的核心参数,几个重要的方法,底层实现,拒绝策略,参数设置,动态调整,线程隔离等等。

线程池那些事上篇

本文关键字:线程,线程池,单线程,多线程,线程池的好处,线程回收,创建方式,核心参数,底层机制,拒绝策略,参数设置,动态监控,线程隔离线程和线程池相关的知识,是Java学习或者面试中一定会遇到的知识点,本篇我们会从线程和进程,并行与并发,单线程和多线程等,一直讲解到线程池,线程池的好处,创建方式,重

浅谈缓存穿透、击穿、雪崩

平时我们使用缓存的方案,一般是在数据库中存储一份,在缓存中同步存储一份。当请求过来的视乎,可以先从缓存中取数据,如果有数据,直接返回缓存中的结果。如果缓存中没有数据,那么去数据库中取出数据,同时更新到缓存中,返回结果。如果数据库中也没有数据,可以直接返回空。

缓存 

漫游数据结构世界

程序 = 数据结构 + 算法,是的,上面这句话是非常经典的,程序由数据结构以及算法组成,当然数据结构和算法也是相辅相成的,不能完全独立来看待,但是本文会相对重点聊聊那些常用的数据结构。