java - 线程中的死锁情况?

标签 java multithreading

想知道什么是线程中的死锁情况,因为在很多书中我都研究了如何避免死锁情况,我只想知道什么是死锁情况及其示例代码?

最佳答案

死锁是并发程序无法进行的情况。

A thread is waiting for another thread, while the other thread is waiting for the first thread's completion.

现实世界中常用的例子是交通流。

alt text

在另一个队列移动之前,任何流量都不能移动。

您可能会发现有关死锁的很好的讨论 here .

更新:这是一个 java example我在网上找到(Oreilly 书)。它对此有评论,因此您可以轻松理解它。

Dining Philosophers problem是理解死锁的另一个很好的例子。

删除了无效的 Imageshack 链接

死锁检测和死锁预防是在了解死锁时可能有用的两个相关领域。

关于java - 线程中的死锁情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1997869/

相关文章:

java - 检查Java中服务器套接字队列中的连接数

java - 调用页面大小大于 36 的 Spring Data MongoDB 存储库方法时出现 StackOverflowError

C# .Net 在分离线程和应用程序退出中接收 UDp 数据包

java - CompletableFuture 单个任务继续执行许多并行任务

java - 在 Java 中获取系统范围的独占锁

c - C 中单个线程中的多个队列

c++ - x86-64 movl 和 cmpl 区别

java - <ClassName> 扩展非 API 类型 <SuperclassName>

java - 如何调用同一个JAVA类的返回值

java - iReport/JasperReports 3.6.1 中重复值的问题