Java 在CORBA命名服务中等待对象绑定
我想等待服务器将自己绑定到CORBA命名服务中。 首先,我尝试使用以下代码,即轮询命名服务Java 在CORBA命名服务中等待对象绑定,java,corba,Java,Corba,我想等待服务器将自己绑定到CORBA命名服务中。 首先,我尝试使用以下代码,即轮询命名服务 Object expectedObj = null; do { try { expectedObj = ncRef.resolve_str("expectedToBeInNameService"); } catch (NotFound e) {} Thread.sleep(2000); } while(expectedObj == null; 我最大的问题是这个阻塞。无阻塞等待的最简
Object expectedObj = null;
do
{
try { expectedObj = ncRef.resolve_str("expectedToBeInNameService"); }
catch (NotFound e) {}
Thread.sleep(2000);
} while(expectedObj == null;
我最大的问题是这个阻塞。无阻塞等待的最简单方法是什么?您可以在另一个线程中等待,然后使用回调通知“原始”线程或对象对命名服务的请求已解决
class WaitThread extends Thread {
CallBackObj callback;
public WaitThread(CallBackObj callback) {
this.text = callback;
// assume CORBA stuff initiated here
}
public void run() {
Object expectedObj = null;
do
{
try { expectedObj = ncRef.resolve_str("expectedToBeInNameService"); }
catch (NotFound e) {}
Thread.sleep(2000);
} while(expectedObj == null;
callback.notifyMethodExample();
}
}
调用方必须实现接口CallBackObj,并通过
WaitThread wt = new WaitThread(this);
wt.start();
interface CallBackObj {
void notifyMethodExample();
}
您可以在另一个线程中等待,并使用回调通知“原始”线程或对象对命名服务的请求已解决
class WaitThread extends Thread {
CallBackObj callback;
public WaitThread(CallBackObj callback) {
this.text = callback;
// assume CORBA stuff initiated here
}
public void run() {
Object expectedObj = null;
do
{
try { expectedObj = ncRef.resolve_str("expectedToBeInNameService"); }
catch (NotFound e) {}
Thread.sleep(2000);
} while(expectedObj == null;
callback.notifyMethodExample();
}
}
调用方必须实现接口CallBackObj,并通过
WaitThread wt = new WaitThread(this);
wt.start();
interface CallBackObj {
void notifyMethodExample();
}
在等待该对象时您想做什么?在等待该对象时您想做什么?您能给出一个代码示例吗?我不熟悉java线程。你能给我一个代码示例吗?我不熟悉java线程。