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. 阻止阻塞的线程阻塞
- 5. 阻止一个线程上的多个MessageBox而不会阻止
- 6. 阻止QApplication :: exec阻止主线程
- 7. 如何阻止给定用户的所有流量?
- 8. SetEvent是否会阻止一个或所有等待的线程?
- 9. 阻止程序终止的线程
- 10. 用对话框阻止Android线程
- 11. 阻止Tomcat中的线程阻塞
- 12. 如何在执行线程时阻止对象更改
- 13. iOS:RestKit入队管理对象操作阻止UI线程
- 14. 自定义TextView阻止主线程
- 15. CompletionService - submit()不会阻止以确保创建所有线程
- 16. 睡眠阻止所有线程不只是一个NSthreads
- 17. 线程阻止垃圾回收所有者
- 18. 如何阻止主线程,直到所有其他线程完成执行?
- 19. 列出所有活动的多线程。定时器对象
- 20. 会LINQ到对象阻塞线程?
- 21. 记录获取锁定在我的对象上的所有线程
- 22. PyGTK阻止非GUI线程
- 23. Android:UI线程被阻止
- 24. HttpWebRequest.BeginGetRequestStream阻止UI线程
- 25. Apache Commons - ConfigurationInterpolator阻止线程
- 26. Camera.open()阻止UI线程
- 27. AlarmManager阻止主线程
- 28. Thread.join阻止主线程
- 29. 中止阻塞线程
- 30. DataGridView阻止UI线程