管程

管程

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

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

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

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

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

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

synchorinzed

posted @ 2023-06-11 09:23  不会上猪的树  阅读(143)  评论(0)    收藏  举报