我是线程新手。我想在每分钟 24/7 连续不断地与多个传感器进行通信。
Senario: 我有一种与传感器对话的方法,它需要 3 个参数
public String perform(String command, String ip, String port)
{
//talk to the sensor and then
returns reply;
}
我有一个包含传感器详细信息的数据库。
我现在在做什么
while(true)
{
//get sensors from database
//run perform method for all instruments
for(int i=0;i<sensors.length-1;i++)
{
//call perform method and save the reply
}
Thread.sleep('one minute');
}
问题: 问题是如果我有 100 个传感器并且每个传感器需要 1 秒来回复,然后我将等待 1 分钟,在这种情况下我可能会丢失一些信息。老实说,有时需要一秒钟以上的时间才能做出回应。
我想要做的是,从数据库中获取所有传感器的信息,然后为每个传感器创建一个线程。然后一次运行所有线程,这将返回一些信息。之后等待一分钟,然后再做一次。
任何帮助表示赞赏。
谢谢