序列號生成器

2021-09-01 17:25:00 字數 848 閱讀 9450

/**

* 生成序列號,最大值為max_val。如果達到max_val,從0開始。

*/public class serialgenerator

return serialno;

}/**

* 求整數有幾位,如234是3位。

* @param i

* @return

*/private static final int getrnum(int i)

int div = i;

int num = 1;

div /= 10;

while (div > 0)

return num;

}/**

* 獲取序列號,該序列號為字串表示,長度固定為序列號的最大長度,

* 如果長度不足,則在前面補0,比如"015"

* @return

*/public static string getserialnoinstr()

return new integer(sum);

} });

}int result = 0;

for (futurefuture : fs)

int expect = 0;

for (int i=0; i}

assert.assertequals(expect, result);

system.out.println(tasknum + " : " + expect);

}random random = new random();

for (int i=0; i<10000; i++) } }

}

錯誤的序列號生成器

public class incorrectserialgenerator return serialno public static int getserialno return serialno 求整數有幾位,如234是3位。param i return private static final...

通用的序列號生成器庫

正如文章 通用的業務編號規則設計實現 附原始碼 文章裡需要乙個多例項和執行緒安全的序列化生成器,在sql server 2012 版本 有乙個通過.net程式集的序列號transact sql 函式 這篇文章向大家介紹乙個使用sql server 和sql azure 以及mongodb 實現的序列...

基於snowflake的Id序列號生成器

背景 在分布式微服務系統中,通常需要全域性唯一的序列號,需求實現簡單高效,通常的做法可以用資料庫的自增id,uuid生成等。但資料庫自增id侷限在於依賴於資料庫表,在效率上有所折扣,尤其是高併發量的場景。而uuid一般比較長,關鍵是無序的。twitter的snowflake解決了這種需求,最初twi...