繁体   English   中英

Thread.sleep 性能对比其他解决方案

[英]Thread.sleep performance vs other solutions

我正在研究一个 JavaFx 项目,其中有一个如下所示的睡眠方法:

 public void run() {
        while (true) {
                try {
                    method1()
                    Thread.sleep(2000);
                    Runnable1
                    Thread.sleep(10000);
                    if (condition 1){
                       method2
                       Thread.sleep(10000);
                    }else{
                       Runnable3
                       Thread.sleep(20000);
                    }
                    switch ()
                    case 1
                        Runnable 1
                       Thread.sleep(12000);
                    case 2
                      Runnable 4  
                      Thread.sleep(12000);
                    case 3
                     Thread.sleep(5000);
                    }
                } catch (InterruptedException ex) {
                    Thread.currentThread().interrupt();
                    break;
                }
        }

问题是“case when and if else”的继承非常复杂(大约 20 个分支)。
有没有比总是使用“Thread.sleep”更好的方法来做到这一点。

几乎有比Thread.sleep更好的方法。

它非常脆弱,因为无法保证“事情”会在该睡眠时间内发生,除非您将睡眠时间延长到您等待不必要的长时间(即使那样,也无法保证)。

您可能正在等待某些情况发生变化; 所以也许看看Condition ; 或查看诸如Future (包括CompletableFuture )之类的东西以在先前的任务完成时执行某些操作。

暂无
暂无

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

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