日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java編寫超時(shí)工具類實(shí)例講解

瀏覽:126日期:2022-08-16 09:03:40

我們?cè)陂_(kāi)發(fā)過(guò)程中,在進(jìn)行時(shí)間操作時(shí),如果在規(guī)定的時(shí)間內(nèi)完成處理的話,有可能會(huì)回到正確的結(jié)果。否則,就會(huì)被視為超時(shí)任務(wù)。此時(shí),我們不再等待(不再執(zhí)行)的時(shí)間操作,直接向調(diào)用者傳達(dá)這個(gè)任務(wù)需要時(shí)間,被取消了。

1、說(shuō)明

java已經(jīng)為我們提供了解決辦法。jdk1.5帶來(lái)的并發(fā)庫(kù)Future類可以滿足這一需求。Future類中重要的方法有g(shù)et()和cancel()。get()獲取數(shù)據(jù)對(duì)象,如果數(shù)據(jù)沒(méi)有加載,則在獲取數(shù)據(jù)之前堵塞,cancel()取消數(shù)據(jù)加載。另一個(gè)get(timeout)操作表明,如果timeout時(shí)間內(nèi)沒(méi)有得到,就會(huì)失敗回來(lái),不會(huì)堵塞。

利用泛型和函數(shù)式接口編寫一個(gè)工具類,可以讓超時(shí)處理更方便,而不用到處寫代碼。

2、實(shí)例

/** * TimeoutUtil <br> * * @author lys * @date 2021/2/25 */@Slf4j@Component@NoArgsConstructorpublic class TimeoutUtil { private ExecutorService executorService; public TimeoutUtil(ExecutorService executorService) { this.executorService = executorService; } /** * 有超時(shí)限制的方法 * * @param bizSupplier 業(yè)務(wù)函數(shù) * @param timeout 超時(shí)時(shí)間,ms * @return 返回值 */ public <R> Result<R> doWithTimeLimit(Supplier<R> bizSupplier, int timeout) { return doWithTimeLimit(bizSupplier, null, timeout); } /** * 有超時(shí)限制的方法 * * @param bizSupplier 業(yè)務(wù)函數(shù) * @param defaultResult 默認(rèn)值 * @param timeout 超時(shí)時(shí)間,ms * @return 返回值 */ public <R> Result<R> doWithTimeLimit(Supplier<R> bizSupplier, R defaultResult, int timeout) { R result; String errMsg = 'Null value'; FutureTask<R> futureTask = new FutureTask<>(bizSupplier::get); executorService.execute(futureTask); try { result = futureTask.get(timeout, TimeUnit.MILLISECONDS); } catch (InterruptedException | ExecutionException | TimeoutException e) { errMsg = String.format('doWithTimeLimit執(zhí)行超過(guò)%d毫秒,強(qiáng)制結(jié)束', timeout); log.error(errMsg, e); futureTask.cancel(true); result = defaultResult; } return of(result, errMsg); } /** * 隨機(jī)耗時(shí)的測(cè)試方法 */ private String randomSpentTime() { Random random = new Random(); int time = (random.nextInt(10) + 1) * 1000; log.info('預(yù)計(jì)randomSpentTime方法執(zhí)行將耗時(shí): ' + time + '毫秒'); try { Thread.sleep(time); } catch (Exception e) { } return 'randomSpentTime --> ' + time; } public static void main(String[] args) throws Exception { ExecutorService executorService = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(), runnable -> { Thread thread = new Thread(runnable); // 以守護(hù)線程方式啟動(dòng) thread.setDaemon(true); return thread; }); TimeoutUtil timeoutUtil = new TimeoutUtil(executorService); for (int i = 1; i <= 10; i++) { log.info('n=============第{}次超時(shí)測(cè)試=============', i); Thread.sleep(6000); long start = System.currentTimeMillis(); String result = timeoutUtil.doWithTimeLimit(() -> timeoutUtil.randomSpentTime(), 5000).getOrElse('默認(rèn)'); log.info('doWithTimeLimit方法實(shí)際耗時(shí){}毫秒,結(jié)果:{}', System.currentTimeMillis() - start, result); } }}

實(shí)例知識(shí)點(diǎn)擴(kuò)展:

屬性校驗(yàn)工具類

/** * 校驗(yàn)對(duì)象中的屬性。如果屬性為null,拋異常。如果屬性為字符串(空串或空格),拋異常。 * @author mex * @date 2019年4月18日 * @param e 對(duì)象 * @param fieldNames 屬性名稱數(shù)組 * @return void * @throws Exception */ public static <E> void validateAttr(E e, String[] fieldNames) throws Exception { if (null == e) { throw new Exception('請(qǐng)求對(duì)象為空'); } if (null == fieldNames) { return; } for (int i = 0; i < fieldNames.length; i++) { String fieldName = fieldNames[i]; Field field = e.getClass().getDeclaredField(fieldName); String typeName = field.getGenericType().getTypeName(); field.setAccessible(Boolean.TRUE); Object fieldValue = field.get(e); // 判斷該屬性為null的情況 if (null == fieldValue) {throw new Exception('請(qǐng)求字段:' + fieldName + '不能為空'); } // 如果該屬性為字符串,判斷其為空或空格的情況 if ('java.lang.String'.equals(typeName)) {if (StringUtils.isBlank((String)fieldValue)) { throw new Exception('請(qǐng)求字段:' + fieldName + '不能為空');} } } }

到此這篇關(guān)于Java編寫超時(shí)工具類實(shí)例講解的文章就介紹到這了,更多相關(guān)Java編寫超時(shí)工具類內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品欧美一区二区三区不卡| 日本不卡的三区四区五区| 国产精品sss在线观看av| 国产精品天堂蜜av在线播放| 久久97久久97精品免视看秋霞| 精品视频久久| 日韩大片在线| 亚洲自拍另类| 国产精品天堂蜜av在线播放| jizzjizz中国精品麻豆| 久久精品官网| 日韩中文字幕| 国产一区日韩| 日韩午夜av在线| 青青草国产成人99久久| 九九九精品视频| japanese国产精品| 日韩精品一区二区三区中文在线| 免费精品一区| 婷婷成人在线| 久久国产三级精品| 999久久久免费精品国产| 乱人伦精品视频在线观看| 国产精品欧美三级在线观看| 成人久久久久| 日韩av成人高清| 91精品韩国| 日韩国产欧美一区二区三区| а√天堂8资源在线| 99亚洲精品| 国精品产品一区| 久久午夜视频| 国产理论在线| 69精品国产久热在线观看| 欧美日韩中文一区二区| 国产欧美一区二区色老头| 久久久久久久久丰满| 日韩精品免费视频一区二区三区| 麻豆视频在线观看免费网站黄| 久久不射中文字幕| 水蜜桃久久夜色精品一区| 亚洲毛片网站| 国产综合精品一区| 久久精品理论片| 蜜桃免费网站一区二区三区| 日韩综合在线| 欧美在线精品一区| 女人天堂亚洲aⅴ在线观看| 国产精品密蕾丝视频下载| 亚洲一区二区三区免费在线观看| 电影91久久久| 91福利精品在线观看| 亚洲福利免费| 国产精品国产三级国产在线观看| 综合激情视频| 亚洲经典在线| 不卡一二三区| 久久免费精品| 欧美三区不卡| 视频国产精品| 夜夜嗨一区二区| 桃色一区二区| 精品视频99| 免费在线亚洲欧美| 欧美片网站免费| 亚洲青青久久| 免费在线看一区| 国产在线不卡| 日韩欧美看国产| 成人在线视频区| 久久久久久久久成人| 欧美日韩视频免费看| 日韩中文字幕在线一区| 美国三级日本三级久久99 | 亚洲视频国产精品| 欧美性感美女一区二区| 国产成人精品999在线观看| 国产精品免费大片| 日本视频在线一区| 日本亚州欧洲精品不卡| 亚洲一区二区成人| 久久不射网站| 日韩在线a电影| 久久国产66| 水野朝阳av一区二区三区| 黄色成人在线网址| 国产女优一区| 中文字幕一区二区三区四区久久| 国产精品美女| 伊人久久大香线蕉av超碰演员| 中文字幕系列一区| 88xx成人免费观看视频库| 日韩黄色大片| 日韩一区二区在线免费| 免费高潮视频95在线观看网站| 一区二区精品伦理...| 91综合网人人| 欧美日韩一二三四| 亚洲综合三区| 亚洲精品黄色| 国产精品免费99久久久| 国产精品2023| 国产成人精品一区二区三区视频| 国产精品毛片一区二区在线看| 精品国产a一区二区三区v免费| 国产精品精品| 国产主播一区| 亚洲在线观看| 欧美日韩 国产精品| 久久精品欧洲| 亚洲成人va| 免费日韩av| 日韩国产欧美在线视频| 免费在线欧美黄色| 日韩中文在线播放| 亚洲欧美久久| 欧美在线精品一区| 精品精品久久| 亚洲激情婷婷| 日韩精品一区二区三区av| 久久99久久人婷婷精品综合| 日本一区二区高清不卡| 亚洲精品一区二区在线看| 亚洲精品九九| 久久99精品久久久久久园产越南 | 欧美综合精品| 国语精品一区| 亚洲美洲欧洲综合国产一区| 日韩精品三级| 91视频一区| 香蕉成人久久| 麻豆91小视频| 欧美在线亚洲| 国产精品一区二区三区美女| 国产精品99视频| 中文一区在线| 国产激情综合| 日韩亚洲国产欧美| 久久99蜜桃| 亚洲免费在线| 国产一区二区三区精品在线观看| 红桃视频国产精品| 国产精品theporn| 亚洲精品电影| 久久精品福利| 中文字幕日本一区二区| 超碰99在线| 亚洲精品福利| 精品捆绑调教一区二区三区| 青青青国产精品| 免费观看不卡av| 国产精品亲子伦av一区二区三区 | 久久精品福利| 丝袜美腿亚洲一区二区图片| 精品国产鲁一鲁****| 国产一区成人| 日韩在线欧美| 国产精品一区毛片| 亚洲欧美日本日韩| 国产精品久久久久蜜臀| 少妇精品久久久| 亚洲一级二级| 97欧美在线视频| 国产精品亚洲产品| 亚洲精选91| 91久久久久| 99久久99久久精品国产片果冰| 欧美黄页在线免费观看| 亚洲日产国产精品| 亚洲精品在线观看91| 新版的欧美在线视频| 国产美女撒尿一区二区| 日韩精品一区第一页| 欧美综合另类| 高清av一区| 麻豆成人91精品二区三区| 日韩区欧美区| 亚洲资源网站| 老牛国产精品一区的观看方式| 久久国产精品成人免费观看的软件| 国产精品一线天粉嫩av| 中文字幕中文字幕精品| 一本色道精品久久一区二区三区| 免费高潮视频95在线观看网站| 精品视频免费| 麻豆久久一区二区| 国产精东传媒成人av电影| 人人精品久久| 日韩高清欧美激情| 一区二区三区国产在线| 亚洲成人免费| 在线日韩视频| 国内精品福利| 欧美搞黄网站| 蜜臀av免费一区二区三区| 国产欧美一区二区三区精品酒店| 老司机免费视频一区二区三区| 国产日韩视频在线| 国产欧美一级| 久久不卡日韩美女|