这些年来,我总是遇到这样的问题,我从来没有用“正确”的方式来解决这些问题。
假设我必须实现一个函数/方法来判断river.the int river()从0 to 10给我们int的级别,这意味着
0根本没有水流过
,以及
10指近超流。
通常情况下,我会以几秒钟/分钟的时间来获取输出,然后将其分级给一些组,比如empty/ half-full / full。
如果时间是一个免费的选择,你将如何收集river()的输出,并在几秒钟/分钟后判断?或者,甚至在这类问题中使用Time作为参数是正确和可靠的。我要求一个算法的想法来解决这些类型的问题。尊重
Edit1:粗体部分是我的主要问题
Edit2: by Time,我的意思是实现Runnable并每10秒调用一次
发布于 2014-02-08 15:49:18
如果我用正确的方式理解了您的问题,您将有两个独立的程序(或至少线程)。一个收集信息,另一个解释信息。
数据采集器不间断地运行,并按规定的间隔保存数据(对于河流,可能每5分钟一次)。它将数据存储在任何类型的持久性层中(从简单的数组到完整的数据库,一切都是可能的)。
然后,数据解释器向采集者请求持久数据,或者在可能的情况下直接从持久化层获取数据,然后对其进行解释。解释器可以在您想要的任何时间运行,并且在询问采集者时总是会获得最新的信息。
编辑:来处理您的编辑:阅读这个Java Thread every X seconds和那个Accuracy of ScheduledExecutorService on normal OS / JVM。它应该回答你所有的问题。
简而言之:这将是稍微不准确的,但我认为这足够接近99%的所有使用。
https://stackoverflow.com/questions/21647988
复制相似问题