秒殺系統(tǒng)設計原理
作者?|?Yrion

?
?public?class?TestRateLimiter?{
????public?static?void?main(String[]?args)?{
????????//1秒產(chǎn)生1個令牌
????????final?RateLimiter?rateLimiter?=?RateLimiter.create(1);
????????for?(int?i?=?0;?i?10;?i++)?{
????????????//該方法會阻塞線程,直到令牌桶中能取到令牌為止才繼續(xù)向下執(zhí)行。
????????????double?waitTime=?rateLimiter.acquire();
????????????System.out.println("任務執(zhí)行"?+?i?+?"等待時間"?+?waitTime);
????????}
????????System.out.println("執(zhí)行結(jié)束");
????}
}

public?class?TestRateLimiter2?{
????public?static?void?main(String[]?args)?{
????????final?RateLimiter?rateLimiter?=?RateLimiter.create(1);
????????for?(int?i?=?0;?i?10;?i++)?{
????????????long?timeOut?=?(long)?0.5;
????????????boolean?isValid?=?rateLimiter.tryAcquire(timeOut,?TimeUnit.SECONDS);
????????????System.out.println("任務"?+?i?+?"執(zhí)行是否有效:"?+?isValid);
????????????if?(!isValid)?{
????????????????continue;
????????????}
????????????System.out.println("任務"?+?i?+?"在執(zhí)行");
????????}
????????System.out.println("結(jié)束");
????}
}


- 推薦閱讀 -
《架構(gòu)師離職后,成為自由開發(fā)者的第 100 天》
往期推薦
下方二維碼關(guān)注我

互聯(lián)網(wǎng)草根,堅持分享技術(shù)、創(chuàng)業(yè)、產(chǎn)品等心得和總結(jié)~

點擊“閱讀原文”,領取 2020 年最新免費技術(shù)資料大全
評論
圖片
表情
