有没有办法在Berkeley DB的java接口上执行非阻塞操作,并使用Future或类似的东西获取操作的状态和结果(比如使用Future获取Callable的结果)?
在DB操作完成之前,我不希望阻塞调用DB的线程。
答案 0 :(得分:1)
从我在API文档中看到的,Berkeley DB JE没有异步API。每次调用DB都会阻塞调用线程,直到操作完成。
答案 1 :(得分:0)
是的,你可以像任何数据库或资源一样,只需创建一个线程并启动它。
Runnable r = new Runnable() {
public void run() {
// call the DB
// call your callback to run other tasks after with the result
}
};
new Thread(r).start();
这是Java中用于执行异步操作的标准方法。 你负责线程,与你似乎提到的javascript相反。