我注意到NetBeans在我的Java代码中的while循环中警告我关于使用Thread.sleep(),所以我已经对此进行了一些研究。看起来,主要的问题是性能之一,当您的同步状态可能会在计数器仍然处于睡眠状态时成为现实,从而在等待下一次迭代时浪费挂钟时间。这一切都是完美的。

我的应用程序需要联系远程系统并定期轮询操作状态,等待操作完成后再发送下一个请求。代码逻辑上是这样做的:

String state = get state via RPC call

while (!state.equals("complete")) {

Thread.sleep(10000); // Wait 10 seconds

state = {update state via RPC call}

}

鉴于这种情况是检查远程操作(这是一个有点昂贵的过程,因为它运行了几秒钟),这是在while循环中有效使用Thread.sleep()吗?有没有更好的方式来构建这个逻辑?我看到一些例子,我可以使用一个Timer类,但是我看不到这个好处,因为它仍然似乎可以归结为上面相同的直截了当的逻辑,但是抛出了更多的复杂性。

请记住,在这种情况下,远程系统既不受我的直接控制,也不是用Java编写的,所以在这种情况下将其更改为“合作”不是一个选择。我更新应用程序的状态值的唯一选择是创建和发送XML消息,接收响应,解析它,然后提取我需要的信息。

任何建议或意见将是最受欢迎的。

java sleep 循环_java – Thread.sleep()在while循环中相关推荐

  1. java while循环_Java while循环

    java while循环 Java while loop is used to execute a block of statements continuously till the given co ...

  2. java数组循环_Java之循环结构及数组

    循环结构 for循环for(条件初始化;条件判断;条件变化){ 重复执行的代码: } for循环的执行流程: 1.条件初始化 2.条件判断 3.不满足条件结束循环,满足条件执行,执行循环体语句 4.条 ...

  3. java for循环_Java for循环语句

    Java for循环语句 在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句.一组被重复执行的语句称之为循环体,能否继续重复,取决于循环的终止条件.循环结构是在一定条件下反 ...

  4. oracle双重for循环sql,Oracle 11g中for循环中的PL / SQL限制

    我有一个大约有3000万条记录的表,并且我想像这样循环遍历表中存在的记录: FOR i IN (SELECT * FROM tbl_items it Left join location lo ON ...

  5. java 枚举 循环_java – 在枚举中实现内部接口时的循环继承

    我有以下实现,给出一个编译器错误: public enum FusionStat implements MonsterStatBuilderHelper { ATTACK { @Override pu ...

  6. java 手动线程调度_Java Thread 多线程 操作线程

    5.线程的创建和启动 A.继承Thread类或实现Runnable接口,重写或实现run方法,run方法代表线程要完成的任务 B.创建Thread子类或是Runnable的实现类,即创建的线程对象:不 ...

  7. java 暂停循环_java小白关于while死循环时处理办法的一发求助帖

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package greedsnake; import java.awt.Color; import java.awt.Font; import java. ...

  8. java stl分解_Java Thread 之間 記憶體空間分析

    Java Thread 之間 記憶體空間分析 SimpleThread.java import com.abc.ChirpControllerDevice; public class SimpleTh ...

  9. java DTO循环_Java Stream与for循环比较

    导读: 笔者使用的是小米笔记本 1.99 GHz 四核Intel Core i7,本文对比了几种方法求素数耗时.这几种方法分别是:传统的for方法,java8 stream流,parallel str ...

最新文章

  1. minicom指令_【教程】minicom使用教程
  2. 系统集成项目管理工程师-项目风险管理笔记
  3. 018_Session
  4. php files上传错误,php-PHP上传文件的问题$_FILES['file']['error']
  5. 防止私自接交换机_防止私接家用路由器干扰DHCP功能,禁止用户手动设置IP地址-肖哥...
  6. [AGC031E] Snuke the Phantom Thief(网络流)
  7. Redis如何支持高并发的访问
  8. 《iOS编程指南》——导读
  9. 唯品会回应“不正当竞争行为”:接受处罚 进行全面整改
  10. ASimpleCache使用感受
  11. 亲密关系-【舒适退出】-减少伤害的终局沟通
  12. uml建模工具_Visual Paradigm 教程[UML]:绘制UML配置文件图
  13. [WPF]c#调用默认浏览器打开网址
  14. 25个最好免费下载电子书(Ebooks)的网站
  15. 统计学基础知识梳理(一)
  16. 《工业设计史》第九章:职业工业设计师的出现
  17. Win11下蓝牙鼠标停止4秒后启动卡顿
  18. python如何学 Python主要能做什么
  19. win10开机启动文件夹路径
  20. eds能谱图分析实例_基础理论丨一文了解XPS(概念、定性定量分析、分析方法等)...

热门文章

  1. Adobe Audition 使用小技巧
  2. 运用jQuery框架实现信息折叠卡片的效果
  3. java的动态验证码单线设计
  4. 6个设计原则【重要】
  5. Meshlab读取三维点云、三维点云重建以及三维点云法向量计算
  6. vscode python 格式化_VSCode 格式化缩进代码的实现
  7. b站html5播放器分辨率低,同样的B站的片源,不同端播出来的效果差不少,怎么设置才准确?...
  8. html5 视频美颜,视频通话怎么美颜(视频通话拜年妆火了)
  9. 计算机毕设(附源码)JAVA-SSM家政服务管理系统
  10. 在虚拟机中安装TIA博途时的注意事项