1,
總結下:每個random例項裡面有乙個原子性的種子變數用來記錄當前的種子的值,當要生成新的隨機數時候要根據當前種子計算新的種子並更新回原子變數。多執行緒下使用單個random例項生成隨機數時候,多個執行緒同時計算隨機數計算新的種子時候多個執行緒會競爭同乙個原子變數的更新操作,由於原子變數的更新是cas操作,同時只有乙個執行緒會成功,所以會造成大量執行緒進行自旋重試,這是會降低併發效能的,所以threadlocalrandom應運而生。
threadlocalrandom.current().ints(100000, 1000000).distinct().limit(6);threadlocalrandom使用threadlocal的原理,讓每個執行緒內持有乙個本地的種子變數,該種子變數只有在使用隨機數時候才會被初始化,多執行緒下計算新種子時候是根據自己執行緒內維護的種子變數進行更新,從而避免了競爭
2,
int num=(int )((math.random()*9+1)*10000);//隨機獲得5位數
不重複數字
operatorname luogup 4305 給定 n nn 個數,要求把其中重複的去掉,只保留第一次出現的數。本題有多組資料。第一行乙個整數 t tt 表示資料組數。對於每組資料 第一行乙個整數 n nn 第二行 n nn 個數,表示給定的數。對於每組資料,輸出一行,為去重後剩下的數,兩個數之...
不重複數字 unordered map
據說這道題加強了資料,卡普通雜湊,多模數雜湊,普通map,set 這時候就要祭出我們的大殺器 unordered map 定義和用法與普通map基本相同,只不過它的查詢是o 1 的 它的實現就是雜湊表 而普通map是o logn 的,那麼這道題就迎刃而解了 另 它還有個兄弟 unordered se...
C 隨機不重複數字字串
code 生成隨機字母字串 數字字母混和 待生成的位數 生成的字母字串 private string generatecheckcode intcodecount else str str ch.tostring return str code 生成隨機字母字串 數字字母混和 待生成的位數 生成的字...