加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在我的主代码中使用Thread.currentThread.sleep()有什么

发布时间:2020-12-15 02:04:31 所属栏目:Java 来源:网络整理
导读:在我的代码我正在使用 Thread.currentThread().sleep(sleepTime); 在代码的主(非Thread对象)部分. 它似乎工作正常,但我担心可能会有一些隐藏的陷阱,以后会在我的屁股中咬我. 有没有更好的方法让你的主要过程坐一会儿?或者这是规定的方法? 编辑: 回答为什
在我的代码我正在使用

Thread.currentThread().sleep(sleepTime);

在代码的主(非Thread对象)部分.

它似乎工作正常,但我担心可能会有一些隐藏的陷阱,以后会在我的屁股中咬我.

有没有更好的方法让你的主要过程坐一会儿?或者这是规定的方法?

编辑:

回答为什么我这样做…

我有一个通过HTTP或FTP连接到远程主机并执行操作的进程.

换一种说法…

东西…

连接到远程…

做远程连接…

密切联系……

更多东西…

必要时重复.

我发现,在非常罕见的情况下,连接只会进入la la land.它不会失败,它不会抛出任何异常,它就会消失.
并且它是阻塞的,因此没有设置计时器的内联方式.

所以,我的解决方案就是这样做……

东西…

启动带有连接的新线程…

在MAIN进程中(而不是在生成的线程中)使用计时器进入无限循环并等待其中任何一个

a)连接线程完成其任务并设置一些标志为“完成”

要么

b)等待一段预设的时间,如果连接线程没有报告它已完成,则将其终止并继续.

在主要过程中,我打算睡一段时间,醒来,看看MAX_WAIT_TIME是否已经过期.如果没有,请回去睡觉再等一下.

它似乎比在标准while循环中更有效(在处理器上),因为这会干扰连接线程做它需要做的事情.

我想我的问题确实是……这种方法有什么不安全之处.我从答案中看到,鉴于我正在做的事情,看起来没有.也许我应该问是否有更标准化的方法?

解决方法

没有陷阱.只要你告诉它就会睡觉.

您的申请长时间入睡的想法可能存在或可能没有陷阱.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读