是否有辦法在Berkeley DB的java接口上執行非阻塞操作,並使用Future或類似的方法獲取操作的狀態和結果(如使用Future獲取Callable的結果)?Berkeley DB可以在java中異步使用嗎?
我不想調用DB的線程被阻塞,直到DB動作完成。
是否有辦法在Berkeley DB的java接口上執行非阻塞操作,並使用Future或類似的方法獲取操作的狀態和結果(如使用Future獲取Callable的結果)?Berkeley DB可以在java中異步使用嗎?
我不想調用DB的線程被阻塞,直到DB動作完成。
從我在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相反。
謝謝,但我想知道伯克利DB是否有非阻塞方法。我想提交數據到數據庫而不會阻塞我的線程,直到寫入結束並檢查動作是否完成以及使用Future是否成功。 –