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

在我的代码我正在使用

Thread.currentThread().sleep(sleepTime);

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

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

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

编辑:

回答为什么我这样做…

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

换一种说法…

东西…

连接到远程…

做远程连接…

密切联系……

更多东西…

必要时重复.

我发现,在非常罕见的情况下,连接只会进入la la land.它不会失败,它不会抛出任何异常,它就会消失.

并且它是阻塞的,因此没有设置计时器的内联方式.

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

东西…

启动带有连接的新线程…

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

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

要么

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值