【发布时间】:2014-02-18 11:47:45
【问题描述】:
我在尝试集成实现 倒计时 以在特定时间间隔内发送消息的 OSGi 包时遇到问题。这是由可运行的类或线程完成的。
想法是下一个;我有捆绑 Sender、捆绑 Receiver 和捆绑 Countdown。
Sender bundle 在一段时间后发送一条消息,例如:5 秒。
发件人 ->创建消息
倒计时 -> 数到 5 秒。
Receiver -> 5 秒后收到消息。
这只是我的应用程序的“隐喻”,但是,我相信你明白了。
我遇到的问题是下一个问题:当捆绑包 Countdown 运行 5 秒倒计时,捆绑包 Sender 停止工作(它是好的,这里没问题),但捆绑包 Receiver 也停止工作。我的想法是在单独的包中实现倒计时只是为了避免其他包停止工作,但我想我错了。
所以,我的问题是……我怎样才能实现倒计时,而不会不必要地停止 OSGi 应用程序的所有捆绑包?
提前致谢。
一些代码:
Countdown
public void countDown()
{
int i = delay;
while (i>0){
try {
i--;
Thread.sleep(1000); // 1000ms = 1 s
}
catch (InterruptedException e) {
//countdown failure? --> nah
}
}
}
Sender
Thread t = new Thread(new Countdown(5));
t.start();
while (t.isAlive());
System.out.println("Sending the message");
【问题讨论】:
-
我们能否查看一些代码以便诊断问题?
-
是的,当然。只需一分钟
标签: java multithreading osgi osgi-bundle