有没有办法在 Berkeley DB 的 java 接口上执行非阻塞操作,并使用 Future 或类似的东西获取操作的状态和结果(比如使用 Future 获取 Callable 的结果)?
在数据库操作完成之前,我不希望调用数据库的线程被阻塞。
有没有办法在 Berkeley DB 的 java 接口上执行非阻塞操作,并使用 Future 或类似的东西获取操作的状态和结果(比如使用 Future 获取 Callable 的结果)?
在数据库操作完成之前,我不希望调用数据库的线程被阻塞。
从我在 API 文档中看到的内容来看,Berkeley DB JE 没有异步 API。对数据库的每次调用都会阻塞调用线程,直到操作完成。
是的,您可以像使用任何数据库或资源一样,只需创建一个线程并启动它即可。
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 相反。