互斥锁和监视器
2026/7/14 12:26:26 网站建设 项目流程

“嗨,阿米戈!”

“在我之前的课程中,我有时会使用‘互斥锁’和‘监控器’这两个词,现在是时候告诉你它们的意思了。”

“我洗耳恭听。”

互斥量是一个用于同步线程/进程的特殊对象。它有两种可能的状态:忙碌和空闲。简单来说,互斥量是一个布尔变量,可以有两个值:忙碌(真)和空闲(假)。”

“当一个线程想要获得一个对象的所有权时,它将对象的互斥量标记为忙碌。当它完成对对象的处理后,它将其互斥量标记为空闲。”

“换句话说,互斥量就像门上的‘忙碌/空闲’标志?”

“是的。而且这样的互斥量与 Java 中的每个对象相关联。只有 Java 机器才能直接访问互斥量。它对程序员是隐藏的。”

“那我们怎么用呢?”

“在 Java 中,我们可以通过监视器使用互斥量。”

“监视器是一种特殊的机制(一段代码),位于互斥量之上。它保证与互斥量的正确交互。将对象标记为忙碌是不够的。仍然有必要确保其他线程不会尝试使用忙碌的对象。”

“在 Java 中,监视器是使用关键字 synchronized 实现的。”

“当您编写同步块时,Java 编译器会用三段代码替换它:”

1)在 synchronized 块的开头,添加了将互斥量标记为繁忙的代码。

2) 在 synchronized 块的末尾,添加了将互斥量标记为空闲的代码。

3) 在同步块

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询