首页 > 其他分享 >管程

管程

时间:2023-06-11 09:34:07浏览次数:16  
标签:代码 synchronized void 保护 方法 管程

管程

管程是一种抽象概念,其具体包含大概两部分:

  1. 共享的数据,
  2. 另一部分是操作共享数据的函数或者方法.

管程保证同一时刻最多只有一个操作者能够进入管程的保护区域,因此管程更像是一种机制,他的具体实现

  • 例如,在java中,管程的实现就可以通过synchronizedwait,以及notifynotifyall这一个关键字和这三个方法.

synchronized关键字的两种用法如下所示:

//定义synchronized 代码块
synchronized(object){...}
//定义synchronized方法
synchronized public void method_name(void) {....}
  • 而当synchronized代码块被声明时,Java编译器会生成monitorenter和monitorexit两个字节码.而当该代码块被执行时,JAVA虚拟机则会生成一个管城,他的保护对象就是修饰的参数对象object,保护的区域则是两个字节码指令之间的指令代码.
  • 而当synchronized修饰方法时,该方法同样会生成一个管程,其保护的对象为方法属性的对象,保护的区域是整个方法.

synchorinzed

标签:代码,synchronized,void,保护,方法,管程
From: https://www.cnblogs.com/looktheworld/p/17472500.html

相关文章

  • 管程
    管程1、为什么要引入管程2、管程的定义和基本特征3、用管程解决生产者消费者问题知识回顾......
  • 练习——管程法,信号灯法简单的实现生产者消费者模型
    packagecom.thread_;//管程法解决生产者消费者模型publicclassPC1{publicstaticvoidmain(String[]args){SynContainercontainer=newSynContainer();Productorproductor=newProductor(container);Consumerconsumer=newC......
  • 操作系统(2.4.5)--管程机制
    1.管程的定义利用共享数据结构抽象地表示系统中的共享资源,而把对该共享数据结构实施的操作定义为一组过程进程对共享资源的申请、释放和其它操作,都是通过这组过程对共享数据......
  • 系统架构设计师考试知识点整理-4:死锁问题、银行家算法、管程与线程
    死锁问题1.死锁是指多个进程之间相互等待对方的资源,而在得到对方资源之前又不释放自己的资源所造成的循环等待的现象。2.死锁产生的根本原因在于系统提供的资源少于并发进程......
  • 操作系统-进程、线程、死锁、管程
    2.1进程定义:由程序段、数据段、PCB三部分组成了进程实体(进程映像)PCB是进程存在的唯一标志,所谓创建、撤销进程即是创建、撤销进程实体中的PCB进程是进程实体的运行......
  • JUC学习笔记——共享模型之管程
    JUC学习笔记——共享模型之管程在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的管程部分我们会分为以下几部分进行介绍:共享问题共享问题解决方案线程安......
  • 深入理解AQS--jdk层面管程实现【管程详解的补充】
    什么是AQS1.java.util.concurrent包中的大多数同步器实现都是围绕着共同的基础行为,比如等待队列、条件队列、独占获取、共享获取等,而这些行为的抽象就是基于AbstractQ......
  • Lock和Condition(下):Dubbo如何用管程实现异步转同步?
    1)Lock和Condition实现的管程在方法的调用上和sychronized有什么不同?前者用await(),signal(),signalAll()。后者使用wait,notify(),notifiAll();2)本节我们要探究dubbo异步......
  • Monitor(管程/监视器)详解
    说明Monitor,直译为“监视器”,而操作系统领域一般翻译为“管程”。管程是指管理共享变量以及对共享变量操作的过程,让它们支持并发。在Java1.5之前,Java语言提供的唯一......