- 浏览: 748046 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (419)
- 杂软粉墨 (2)
- 创意灵感 (3)
- 经验记录 (137)
- 开源轨迹 (2)
- sip-communicator (2)
- 闲侃杂谈 (8)
- 问题交流 (24)
- 概念模式 (32)
- 难点备案 (5)
- JwChat (1)
- 中国象棋 (1)
- 教育探索 (6)
- 英语研究 (58)
- 星际争霸 (1)
- 电信知识 (1)
- 软件架构 (3)
- 哲学探索 (26)
- 算法灵魂 (8)
- 近视探索 (6)
- 数学数学 (3)
- 牛角钻尖 (23)
- 至强文言 (3)
- 数据结构 (1)
- 宇宙物理 (2)
- 网络架构 (3)
- 游戏领域 (4)
- 图形处理 (2)
- 修炼之路 (8)
- 读书天地 (20)
- 编解乱码 (2)
- 概念探索 (8)
- 格物致知 (1)
- 其它语言 (1)
- 测试领域 (3)
- 文化风流 (1)
- JQuery (1)
- 網頁領域 (1)
- Unix/Linux (1)
- Inside JVM (1)
- 异常分析 (1)
最新评论
-
suyujie:
引用
HTML <a> 标签灰显禁用 -
suyujie:
HTML <a> 标签灰显禁用 -
suyujie:
HTML <a> 标签灰显禁用 -
suyujie:
HTML <a> 标签灰显禁用 -
iamzhoug37:
您能说一下"局部变量不受文本顺序限制" 是 ...
声明前为什么能赋值却不能输出,都是使用
public class Deadlock { static class Friend { private final String name; public Friend(String name) { this.name = name; } public String getName() { return this.name; } public synchronized void bow(Friend bower) { System.out.format("%s: %s has bowed to me!%n", this.name, bower.getName()); bower.bowBack(this); } public synchronized void bowBack(Friend bower) { System.out.format("%s: %s has bowed back to me!%n", this.name, bower.getName()); } } public static void main(String[] args) { final Friend alphonse = new Friend("Alphonse"); final Friend gaston = new Friend("Gaston"); new Thread(new Runnable() { public void run() { alphonse.bow(gaston); } }).start(); new Thread(new Runnable() { public void run() { gaston.bow(alphonse); } }).start(); } }
Deadlock describes a situation where two or more threads are blocked forever, waiting for each other. Here's an example.
Alphonse and Gaston are friends, and great believers in courtesy. A
strict rule of courtesy is that when you bow to a friend, you must
remain bowed until your friend has a chance to return the bow.
Unfortunately, this rule does not account for the possibility that two
friends might bow to each other at the same time. This example
application,
,
models this possibility:
Deadlock
http://java.sun.com/docs/books/tutorial/essential/concurrency/deadlock.html
礼仪的做法是你向对方鞠躬之后,你必须保持鞠躬姿势直到对方有机会向你回鞠躬
看打印描述,貌似
a.bow(b): 是b向a鞠躬
b.bowBack(a): 是a向b回鞠躬
我觉得更直观理解应该是:
a.bow(b): 是a向b鞠躬
b.bowBack(a): 是b向a回鞠躬
发表评论
-
RuntimeException为啥不用声明抛出?
2012-11-13 15:04 7466异常,错误都是同一种父类:java.lang.Throwabl ... -
why null is allocated on java stack
2012-06-05 11:45 1191提问: 恩。。。俺的意思是, String str = n ... -
关于Java 泛型 ?extends T 的问题
2012-05-21 11:05 4361http://topic.csdn.net/u/2012051 ... -
HashSet的contains方法de解释是不是有问题
2011-02-20 22:27 3269first of all, exhibits the code ... -
hashcode中选择31因子的原因
2010-12-24 13:57 1481源自<<effective java 2nd> ... -
为什么AnonymousInnerClass只能访问final型非同一方法局部变量
2010-09-13 09:39 1447import java.io.IOException; im ... -
URLConnection访问servlet无反应
2010-07-26 09:28 2679这样完整的回路是ok的 客户端 import jav ... -
This is how scientists see the world
2010-07-14 15:36 1014有些东西不清楚,比如右上角什么东东,中间那个看似压强C, ... -
接口能描述成has-a吗
2010-07-10 10:19 1335接口has a什么呢? 如果说接口当作具备某种能力来用,比如X ... -
关于java.util.ResourceBundle
2010-07-05 14:17 4354import java.util.ResourceBundle ... -
ArrayList,Vector线程安全性测试
2010-06-18 09:43 3214import java.util.ArrayList; im ... -
SortedSet去重
2010-06-13 17:06 1337import java.util.Iterator; imp ... -
这个静态内部类实现的单例是迟加载且线程安全的吗?
2010-05-28 13:10 1633public class JiveProperties { ... -
double-checked locking实现的单例模式之volatile
2010-05-26 17:23 3512private volatile static Singlet ... -
java中Adapter是什么概念
2010-04-06 11:30 4945Adapter乃适配器, ... -
编码转换会丢失信息吗
2010-03-09 13:13 1256编码转换会丢失信息吗? 这是个命题,根 ... -
文本文件在系统中的存储与展现方式
2010-02-04 09:38 1136碰到了一个问题,同样的一个properties ... -
servlet如何实现多线程访问同一个实例的多个service方法
2009-12-09 11:22 1625如题,这是我现在想的一个问题,暂存于此,它同一个方法的 ... -
构造方法是静态的吗?
2009-12-03 15:13 1435public class Test { private ... -
关于JTextPane读取RTF多出一行的问题
2009-11-11 11:20 2468代码如下: import java.io.FileInput ...
相关推荐
使用欧拉角对三维旋转进行描述时,旋转顺序非常关键。通常,我们遵循一个固定的顺序(如zyx、zxy、xyz等),而不同的旋转顺序代表了不同的旋转策略。 数学上,通过欧拉角表示旋转时,可以使用对应的旋转矩阵来进行...
描述与分析: 本程序通过两个`DeadThread`线程类实例和两个`Test`对象实例演示了死锁(deadlock)现象。死锁是多线程编程中常见的一种问题,发生在多个线程相互等待对方释放资源而无限期阻塞的情况。 在代码中,`...
在描述的场景中,死锁并不是由于两台机器同时`SELECT ... FOR UPDATE`相同数据导致的,而是由于`SELECT ... FOR UPDATE`与`UPDATE`语句之间的交互引发的。 一个例子是,当一个事务用`SELECT ... FOR UPDATE`锁定了...
在描述死锁问题时,通常会考虑以下四个必要条件: 1. 互斥条件:资源必须被一个进程独占,不能同时被多个进程使用。 2. 请求与保持条件:进程已经占有至少一个资源,但又请求新的资源。 3. 不剥夺条件:进程已获得的...
死锁的示例可以用汽车过桥的例子来解释。假设有两个汽车要过一座窄桥, Bridge如果两个汽车同时开到桥上,势必会发生冲突。类似地,在计算机系统中,涉及软件、硬件资源的进程都可能发生死锁。 8.2.2 死锁的必要...
为了描述死锁,可以使用资源分配图,图中包含进程节点和资源节点,通过边来表示资源的分配关系。通过分析这个图,可以发现和解决死锁问题。 解决死锁的方法通常包括预防、避免和检测恢复。预防死锁是通过设置规则...
并且,通过具体的例子(5个进程,3类资源),演示了如何使用这些数据结构来判断系统是否处于死锁状态,并通过死锁检测算法找到安全序列以避免死锁。此外,文档还讨论了死锁恢复的两种途径:进程终止(Process ...
在描述中提到的背景,我们了解到作者之前对MySQL锁机制有一定的了解,但在处理一个特定的死锁问题时遇到了挑战。问题始于系统报警,抛出了一个事务回滚异常,明确指出死锁是导致事务回滚的原因。面对这种情况,作者...
描述中提到,这个示例会结合实例分析死锁的原因和注意事项。理解死锁的原因有助于我们在编写多线程代码时避免这类问题。在Java中,死锁的发生通常满足四个条件: 1. 互斥条件:每个资源在任何时候只能被一个线程...
描述中的“博客demo例子”进一步确认了这一点,它可能来源于一篇博客文章,作者为了详细解释某个编程概念或技巧,提供了这段可运行的代码。通常,这样的代码实例可以帮助读者更好地理解文章内容,通过实践来学习和...
InnoDB是MySQL中广泛使用的事务型存储引擎,支持多种事务隔离级别,其中包括描述中提到的“可重复读”(Repeatable Read)级别。在这个级别下,事务能够看到它开始时的数据视图,即使其他事务在此期间对数据进行了修改...
在这个“操作系统实验1:进程控制与描述”中,我们将深入理解进程的基本概念,掌握进程的创建、同步、通信以及调度等核心知识点。 首先,我们需要了解什么是进程。在操作系统中,进程是程序的一次动态执行过程,它...
例如,在本例中,定时器可能被用来设置超时机制,如果在预设时间内未接收到刷卡器的回应,程序会触发超时提醒,避免因为网络延迟或设备故障导致的死锁。Windows Forms中的System.Windows.Forms.Timer类可以轻松实现...
描述虽然简短,但暗示我们将通过具体的示例来学习这一主题。 在Java编程语言中,多线程是通过`Thread`类或者`Runnable`接口实现的。创建一个新的线程有两种主要方法: 1. **继承Thread类**:创建一个新的类,该类...
在编程领域,多线程是实现并发执行任务的关键技术,特别是在服务器端开发、GUI应用程序以及高性能计算中。...通过对这个例子的分析和实践,你可以加深对并发编程的理解,为构建高效、稳定的多线程应用打下坚实的基础。
4. **USB描述符**:包括设备描述符、配置描述符、接口描述符、端点描述符等,这些都是设备向主机报告其特性的关键数据结构。 5. **枚举过程**:当USB设备插入时,系统如何发现并枚举设备,以及驱动程序如何参与到这...