我在java程序中有3个函数:
主要功能是菜单驱动。它要求用户输入关于他们需要什么值的选择,因此使用第三个函数返回值。 虽然这种情况继续下去,但我希望前两个函数每5秒运行一次,它不应该混淆菜单驱动程序。
关于如何做到这一点的任何想法?
p.s。:我尝试了一些exapmles但是每次完成前两个函数时它们都会重置菜单(do while循环)。
答案 0 :(得分:0)
在黑暗中刺穿 - 调用任务的Timer函数会起作用吗?
答案 1 :(得分:0)
对于前两个功能,您可以使用
while(true) {
thread1.start();
thread2.start();
Thread.sleep(5000);
}
对于第三个线程,你应该制作运行背景的Deamon线程(通过thread3.setDeamon(true))。在每种线程的run方法中(不要忘记实现Runnable或者扩展Thread),你可以做出线程正在做的工作。祝你好运!
答案 2 :(得分:0)
您可能需要采用multithreading
方式,因为SNMP通信可能会导致等待回复的超时超时,并且您不希望超时冻结接口(等待UI线程会很糟糕)。
为简单起见,可以使用一个线程来为“两个函数”进行通信,轮询function1()
和function2()
(稍后可以使用{ {1}})。
主线程可以用于主输入(就像普通的java程序一样)。
线程逻辑的片段,其中Thread Pool
和function1()
非常耗时(注意:没有 sleep ,因为cadencing将在您的函数中进行轮询,如果您需要降低轮询频率,请使用function2()
和wait(timeout)
- 当用户单击“退出”菜单时快速退出):
notifyAll()