gpt4 book ai didi

java - 等待对象在 CORBA 命名服务中绑定(bind)

转载 作者:行者123 更新时间:2023-11-29 09:10:29 26 4
gpt4 key购买 nike

我想等待服务器将自己绑定(bind)到 CORBA 命名服务中。首先我尝试使用下面的代码,它正在轮询命名服务

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();
}
}

调用者必须实现接口(interface) CallBackObj 并将创建此线程

WaitThread wt = new WaitThread(this);
wt.start();


interface CallBackObj {
void notifyMethodExample();

}

关于java - 等待对象在 CORBA 命名服务中绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12753386/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com