zoukankan      html  css  js  c++  java
  • java虚拟机之线程同步

    线程同步  

    java 编程语言其中一个优点就是提供了语言层面的多线程支持。多线程支持主要是围绕synchronization来展开的:在多个线程之间协调数据访问。java用来实现同步的机制我们称作为monitor.本文将介绍monitor以及java虚拟机是如何使用monitor的——有指令集支持的数据加锁与解锁。

    monitor

    java监视器(monitor)支持两种类型的线程同步,互斥与协作,互斥:java虚拟机通过object 锁来实现互斥,允许多个线程在共享数据上不相互干扰的work;协作:java虚拟机通过object类的的wait(), notify()方法来实现多线程一起work。

    一个monitor就想一个房子,房子中有一间特别的房间,这个房间仅仅能够同时被一个线程占据。这个房间一般情况下包含以下数据;从这个线程进入房间到离开房间,里面的数据时排他的,只有这个线程可以访问。进入这个房子我们称之为进入监视器(Entering the monitor), 进入房间我们称之为获得监视器(acquiring the monitor),占有这个房间我们称之为拥有监视器(owning the monitor),离开房间,我们称之为释放监视器(releasing the monitor),离开整个房子,我们称之为退出监视器(exiting the monitor)。

    除了与数据相关,monitor也与代码相关,本文中将这个代码称为监视区(monitor regions).监视区是监视器了一组不可分割的执行操作。换句话说,一个线程从开始执行监视区到执行完成的这段时间,其他的线程不能执行该监视器的监视区。监视器确保了同时只有一个线程执行这个监视区。

  • 相关阅读:
    Topic model的变种及其应用[1]
    关于LDA的文章
    优秀的基于VUE移动端UI框架合集
    uwsgi部署django,里的request调用的接口响应慢解决方法
    vue部署到nginx服务下,非根目录,刷新页面404怎么解决?
    vue 项目部署到nginx
    CentOS7.2安装nginx失败
    vue-router总结
    vuerouter
    django1
  • 原文地址:https://www.cnblogs.com/zhonghan/p/5611831.html
Copyright © 2011-2022 走看看