1
A
回答
2
您可以在方法內部等待Condition。條件會是這樣的:
while (!conn.isConnected) condition.await()
當然,這個僞代碼還有很多。
您也可以閱讀所謂的circuit breaker pattern。一種流行的羅嗦的事情,但它的目標是管理可能失敗的集成點,如連接到數據庫。
0
只有在連接重新建立之前,您不能從方法中返回嗎?實際實現將取決於此方法以及如何管理此連接。您可以在對象上使用wait()
,並且當另一個負責重新連接的線程重新建立連接時,請致電notify()
解鎖該方法。這樣,調用方法的任何東西都會被阻塞,因爲連接關閉時該方法永遠不會返回。
0
可以使用Object class wait()和notifyAll的()方法:
public final void wait(long timeout) throws InterruptedException
導致當前的線程等待,直到其他線程調用 notify()方法或對notifyAll的()方法此對象或指定的時間量已過去。
public final void notifyAll()
喚醒在等待該對象的監視器上的全部線程。 A 線程通過調用等待 方法之一等待對象的監視器。
但是,這絕不是唯一對您開放的解決方案。還有其他synchronisation mechanisms in Java
相關問題
- 1. C#阻止從其他線程訪問所有對象方法
- 2. 在Django中阻塞網絡調用阻止所有線程?
- 3. Java多線程應用程序如何將對象阻止給他人?
- 4. 阻止QApplication :: exec阻止主線程
- 5. 如何阻止給定用戶的所有流量?
- 6. SetEvent是否會阻止一個或所有等待的線程?
- 7. 用對話框阻止Android線程
- 8. 阻止Tomcat中的線程阻塞
- 9. 如何在執行線程時阻止對象更改
- 10. 自定義TextView阻止主線程
- 11. 如何阻止主線程,直到所有其他線程完成執行?
- 12. DataGridView阻止UI線程
- 13. Camera.open()阻止UI線程
- 14. AlarmManager阻止主線程
- 15. 中止阻塞線程
- 16. 回調阻止線程
- 17. Thread.join阻止主線程
- 18. 阻止當前線程RXJS
- 19. Android:UI線程被阻止
- 20. PyGTK阻止非GUI線程
- 21. UI線程阻塞調用COM對象的後臺線程
- 22. 鎖定對象不會停止對其他線程的更改
- 23. 有沒有辦法訪問給定對象的所有引用?
- 24. 顯示上下文NSMenu沒有阻止主線程
- 25. Hazelcast線程阻止TomEE停止
- 26. 不停止gdb中的所有線程
- 27. 在C#或.NET中,是否有辦法阻止其他線程調用特定線程上的方法?
- 28. '線程'對象沒有屬性'線程'
- 29. 如何阻止ARC釋放兩個線程共享的對象兩次?
- 30. 如果語句阻止Javascript的線程?