2

有没有办法在 Berkeley DB 的 java 接口上执行非阻塞操作,并使用 Future 或类似的东西获取操作的状态和结果(比如使用 Future 获取 Callable 的结果)?

在数据库操作完成之前,我不希望调用数据库的线程被阻塞。

4

2 回答 2

1

从我在 API 文档中看到的内容来看,Berkeley DB JE 没有异步 API。对数据库的每次调用都会阻塞调用线程,直到操作完成。

于 2013-07-10T07:36:46.857 回答
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 相反。

于 2012-09-30T07:10:51.537 回答