ToB企服应用市场:ToB评测及商务社交产业平台

标题: Java的对象监视器 [打印本页]

作者: 用户云卷云舒    时间: 2024-7-7 22:20
标题: Java的对象监视器
什么是监视器(Monitor)?

在Java中,监视器(Monitor)是用来实现线程同步的一种机制。每个Java对象都有一个与之关联的监视器,线程可以通过synchronized关键字来获取和开释对象的监视器。监视器的主要作用是确保在同一时刻只有一个线程可以执行同步块或同步方法,从而实现线程的互斥访问。
监视器的构成部门

监视器通常包含以下三个关键部门:
线程等待的地方

线程状态转换表现图

以下是线程在不同状态之间转换的过程表现图:
示例代码解释

我们通过一个示例代码来解释线程在不同状态之间的转换:
  1. public class MonitorExample {
  2.     private static final Object lock = new Object();
  3.     public static void main(String[] args) {
  4.         Thread thread1 = new Thread(() -> {
  5.             synchronized (lock) {
  6.                 try {
  7.                     System.out.println("Thread 1: Acquired lock, entering wait state.");
  8.                     lock.wait();
  9.                     System.out.println("Thread 1: Woken up, reacquired lock.");
  10.                 } catch (InterruptedException e) {
  11.                     Thread.currentThread().interrupt();
  12.                 }
  13.             }
  14.         });
  15.         Thread thread2 = new Thread(() -> {
  16.             synchronized (lock) {
  17.                 System.out.println("Thread 2: Acquired lock, notifying.");
  18.                 lock.notify();
  19.                 System.out.println("Thread 2: Notified, releasing lock.");
  20.             }
  21.         });
  22.         thread1.start();
  23.         try {
  24.             Thread.sleep(100); // Ensure thread1 starts first and enters wait state
  25.         } catch (InterruptedException e) {
  26.             Thread.currentThread().interrupt();
  27.         }
  28.         thread2.start();
  29.     }
  30. }
复制代码
过程解释

总结


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4