zoukankan      html  css  js  c++  java
  • 对象监视器

    监视器是一种同步结构,它基于互斥锁,允许线程同时互斥(使用锁)和协作,

    互斥

    当一个线程访问受保护的数据时,如果没有其他线程在等待,线程获取锁并继续执行。当线程完成执行时,它释放锁并退出监视器。

    但如果此时另一个线程已经拥有监视器时,它必须在entry-set中等待。当前面的线程执行完毕退出监视器时,新到达的线程必须与在入口集中等待的其他线程竞争。只有一个线程能赢得竞争并拥有锁。

    协作

    当一个线程需要数据在某一个状态下它才能执行,那么另一个线程负责将数据改变到此状态,

    常见的如生产者/消费者的问题,当读线程需要缓冲区处于“不空”的状态它才可以从缓冲区中读取任何数据,如果它发现缓冲区为空,则进入wait-set等待。待写线程用数据填充缓冲区,再通知读线程进行读取。这种机制被称为“Wait and Notify”或“Signal and Continue

    如下图所示:

  • 相关阅读:
    【linux】which和whereis
    【linux】locate介绍
    【linux】find命令详解
    【linux】umask
    【linux】文件目录说明
    【linux】Linux系统信息查看命令大全
    【linux】mkdir -p命令
    【linux】head&&tail
    【linux】less &&more
    【linux】ls常用参数
  • 原文地址:https://www.cnblogs.com/yanze/p/9774388.html
Copyright © 2011-2022 走看看