繁体   English   中英

如何以固定速率加入时间表

[英]How to join a schedule at fixed rate thread

如果您有执行服务,您可以通过scheduleAtFixedRate提交此类服务

public void methodName() {
    executorService.scheduleAtFixedRate(new Runnable() {
        @Override
        public void run() {
            //do some operations
            //getSomeResults()
        }

    }, x, y, TimeUnit.SECONDS);
}

是否可以与另一个负责getSomeResults()的线程一起加入? 例如,我希望线程在继续继续之前等待getSomeResults()完成-这可能吗?

谢谢

是的,您要提交FutureTask而不是Runnable FutureTaskRunnable ,因此您无需更改其他任何内容。)

如果创建FutureTask则可以让另一个线程调用其.get()方法,该方法将阻塞直到任务完成为止,并且它将返回结果。

(最干净的方法是完全摆脱getSomeResults()方法,而仅使用FutureTaskget()方法;但是没有什么可以阻止您或多或少地保留代码,而只是使用get()作为一种阻止方式,如果您想先尝试一下以检查其是否正常工作。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM