Kaz*_*lfe 1 java multithreading
我有以下代码片段,旨在检查是否已将消息发送到电话号码:
public static boolean checkMessages(long sendTime, String phone) {
boolean gotMessage = false;
while (!gotMessage) {
try {
Thread.sleep(5000);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
gotMessage = MessageHandler.getResponse(sendTime, phone);
}
return gotMessage;
}
Run Code Online (Sandbox Code Playgroud)
此代码本身通过调用CompletableFuture,因此可以与另一个检查并行运行。如果在一定时间内未满足任何一项检查,则两者都将到期。
现在,根据我的IDE和此站点的说法Thread.sleep(),由于许多原因,使用是不好的,所以我想以某种方式将其从代码中删除。
有没有一种方法可以使此方法像现在一样只返回true?
MessageHandler.getResponse()是我编写的处理程序,用于检查我是否从特定电话号码接收到包含特定(硬编码)文本字符串的文本消息。它会阻塞执行,直到完成检查为止,但是我使用的API的速率限制非常严格。该API不提供回调-必须手动调用。
| 归档时间: |
|
| 查看次数: |
1341 次 |
| 最近记录: |