栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

预定执行程序:以固定速率轮询结果,如果超时或结果有效,则退出

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

预定执行程序:以固定速率轮询结果,如果超时或结果有效,则退出

使它成为自调度任务。用伪代码:

public class PollingTaskRunner {...CountDownLatch doneWait = new CountDownLatch(1);volatile boolean done;PollingTaskRunner(Runnable pollingTask, int frequency, int period) {    ...    endTime = now + period;    executor.schedule(this, 0);}run() {    try {        pollingTask.run();    } catch (Exception e) {        ...    }    if (pollingTask.isComplete() || now + frequency > endTime) {        done = true;        doneWait.countDown();        executor.shutdown();    } else {        executor.schedule(this, frequency);    }}await() {    doneWait.await();}isDone() {    return done;}}

它并不复杂,但是在您第一次运行/测试时添加大量调试语句,以便您了解发生了什么。一旦按预期运行,就很容易重用该模式。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498648.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号