当前位置: 首页 > news >正文

网站开发的后期支持深圳外贸网站推广

网站开发的后期支持,深圳外贸网站推广,辽宁数据网站建设哪家便宜,广州网站开发企业其实雪花算法比较简单,可能称不上什么算法就是一种构造UID的方法。 点1:UID是一个long类型的41位时间戳,10位存储机器码,12位存储序列号。 点2:时间戳的单位是毫秒,可以同时链接1024台机器,每台…

其实雪花算法比较简单,可能称不上什么算法就是一种构造UID的方法。
点1:UID是一个long类型的41位时间戳,10位存储机器码,12位存储序列号。
点2:时间戳的单位是毫秒,可以同时链接1024台机器,每台机器每毫秒可以使用4096个序列好,我们会给生成id上一个同步锁,阻塞住其他线程的访问。
点3:利用掩码我们可以检测序列是否溢出,如果溢出的话,就强制等待到下一毫秒。


/*** @author hardstone* @since 29 July 2023(1690603385473)*/
public class SnowFlakes {//开始的时间戳private final  long start = 1690603385473L;//机器标识长度5位private final long machineIdBits = 5L;//机器集群标识长度5位private final long centerIdBits = 5L;//序列标识所占位数12位private final long sequenceBits = 12L;//机器标识最大值private final long maxMachineId = -1L ^ (-1L << machineIdBits);//机器集群标识最大值private final long maxCenterId = -1L ^ (-1L << centerIdBits);//序列标识的最大值private final long sequenceMask = -1L ^ (-1L << sequenceBits);//机器标识左移长度private final long machineIdShift = sequenceBits;//机器集群标识左移长度private final long centerIdShift = sequenceBits + machineIdBits;//时间戳左移长度private final long timeStampIdShift = sequenceBits + machineIdBits + centerIdBits;//序列Idprivate long sequence = 0L;//机器Idprivate long machineId;//机器集群Idprivate long centerId;//时间戳private long lastTimeStamp = -1L;public SnowFlakes(long machineId, long centerId) {if (machineId > maxMachineId || machineId < 0) {throw new IllegalArgumentException(String.format("WorkerId should be between 0 and 31"));}if (centerId > maxCenterId || centerId < 0) {throw new IllegalArgumentException(String.format("CenterId should be between 0 and 31"));}}public synchronized long nextId() {long timeStamp = System.currentTimeMillis();//时间回滚现象if (timeStamp < lastTimeStamp) {throw new RuntimeException(String.format("Time gone backwards!"));}if (lastTimeStamp == timeStamp) {sequence = (sequence + 1) & sequenceMask;//如果序列分配完了if (sequence == 0) {timeStamp = getNextMillis(lastTimeStamp);}} else {sequence = 0L;}lastTimeStamp = timeStamp;return ((timeStamp - start) << timeStampIdShift)| (centerId << centerIdShift)| (machineId << machineIdShift)| sequence;}protected long getNextMillis(long lastTimeStamp) {long timeStamp = System.currentTimeMillis();while (timeStamp <= lastTimeStamp) {timeStamp = System.currentTimeMillis();}return timeStamp;}public static void main(String[] args) {System.out.println(new SnowFlakes(0, 0).nextId());}
}
http://www.ds6.com.cn/news/52771.html

相关文章:

  • 广州市网站建设科技公司网络事件营销
  • 婚庆公司合同模板沈阳网站seo
  • 广州网站建设吧企业宣传
  • 自己做采集电影网站百度竞价关键词质量度怎么提升
  • wordpress建的网站营销软文范例500
  • 浩方网络网站建设常州网络推广哪家好
  • 学做网站要什么学历接广告的平台
  • 网站的最近浏览 怎么做seo技术博客
  • https网站制作淘宝关键词排名查询网站
  • 做网站一些专业术语黄冈网站搭建推荐
  • 谷歌seo推广服务seo招聘
  • 网站怎么做二级页面网站设计公司哪家专业
  • wordpress没有显示安装常用seo站长工具
  • 网站开发与发布企业邮箱查询
  • 国外做ppt的网站seo优化在线诊断
  • 网站在当地做宣传上海网站推广排名公司
  • 手机wap网站程序超级外链发布工具
  • 动态ip服务器可以做网站吗网页推广方案
  • 从零学建设网站深圳市网络品牌推广
  • 婚庆公司天津seo外包
  • 成都商城类网站设计seo网站分析
  • 自己编写代码建设微网站腾讯企点怎么注册
  • 微盟如何做网站每日精选12条新闻
  • 无水印视频素材下载网站十大少儿编程教育品牌
  • 金融培训网站源码搜索引擎优化学习
  • 企业网站怎么做排名创建网站
  • 北京企业建网站公司本地建站软件有哪些
  • 服装加工厂网站建设方案计划书大数据平台
  • 网站建设的相关技术今日国内重大新闻事件
  • 寮步镇网站建设公司网站设计