IdGenerator 唯一Id生成器

2022-06-17 15:30:18 字數 871 閱讀 5989

public class idgenerator

public idgenerator(long processid)

this.processid = processid;

}protected long timegen()

public synchronized long nextid()

// 剛剛生成的時間戳跟上次的時間戳一樣,則需要生成乙個sequence序列號

if (ts == lastts)

// 如果ts>lastts,時間戳序列已經不同了,此時可以不必生成sequence了,直接取0

} else

// 更新lastts時間戳

lastts = ts;

return ((ts - begints) << (processidbits + sequencebits)) | (processid << sequencebits) | sequence;

}public long nextshortid()

return shortid;

}protected long nextts(long lastts)

return ts;}}

試一下這個演算法的效率:

public static void main(string args) throws exception

system.out.println(set.size());

system.out.println(system.currenttimemillis() - start);

}結果:

set.size(): 100000

time:115

php 生成唯一ID

function guid factor prefix suffix 生成因子 機器毫秒,使用者瀏覽器與作業系統資訊,使用者ip,隨機因子,及自定義 factor 因子 原理 自定義 factor 因子 例如可使用使用者 user id 模組標識 product,order.字首 prefix 可用...

php生成唯一id

網上查了下,有很多的方法 1 md5 time mt rand 1,1000000 這種方法有一定的概率會出現重複 2 php內建函式uniqid uniqid 函式基於以微秒計的當前時間,生成乙個唯一的 id.w3school參考手冊有一句話 由於基於系統時間,通過該函式生成的 id 不是最佳的。...

MySql唯一ID生成

前陣子,一直在折騰阿里雲。寫的一些文章也放到自己的wordpress部落格上了。但自己前陣子在做系統更換操作的時候未備份磁碟,大部分心血付諸東流。真是乙個悲傷的故事。現在決定用.net搞搞自己的部落格。正好把wordpress給拋棄掉。言歸正傳,這個唯一號類似自增id,自增id雖然好用,但進行資料庫...