管程:管程的界说、构成及根本特征

管程的界说

零碎中的各类硬件资本和软件资本,均可用数据构造笼统地描绘其资本特征,即用大批信息和对资本所履行的操作来表征该资本,而疏忽了它们的外部构造和完成细节。管程是由一组数据以及界说在这组数据之上的对这组数据的操作构成的软件模块,这组操作能初始化并改动管程中的数据和同步过程。

管程的构成

1) 部分于管程的共享构造数听说明。
2) 对该数据构造停止操作的一组进程。
3) 对部分于管程的共享数据设置初始值的语句。

管程的根本特征

1) 部分于管程的数据只能被部分于管程内的进程所拜访。
2) 一个过程只要经过挪用管程内的进程才干进入管程拜访共享数据。
3) 每次仅许可一个过程在管程内履行某个外部进程。
因为管程是一个言语成分,所以管程的互斥拜访完整由编译程序在编译时主动添加,无需程序员存眷,并且包管准确。

时间: 2024-11-09 03:03:37

管程:管程的界说、构成及根本特征的相关文章

Python全栈开发-Day10-进程/协程/异步IO/IO多路复用

本节内容 多进程multiprocessing 进程间的通讯 协程 论事件驱动与异步IO Select\Poll\Epoll--IO多路复用   1.多进程multiprocessing Python的线程用的是操作系统的原生线程,同样python的进程用的是操作系统的原生进程. 多进程之间没有锁的概念,多进程之间数据不能互相访问,所以不存在互斥锁.GIL问题又是仅仅出现在多线程中. 所以如果我们启动8个进程,每个进程有一个主线程,即8个线程,分别运行在8个CPU上,就可以充分利用多核的优势了.

各类纤程/协程使用比较

各类纤程/协程使用比较 来源 https://blog.csdn.net/ruhailiu126/article/details/79691839 一:什么是纤程/协程? 纤程(Fiber)是一种最轻量化的线程(lightweight threads).它是一种用户线程(user thread),让应用程序可以独立决定自己的线程要如何运作.操作系统内核不能看见它,也不会为它进行调度.就像一般的线程,纤程有自己的寻址空间.但是纤程采取合作式多任务(Cooperative multitasking)

python 并发编程 协程 协程介绍

协程:是单线程下的并发,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的 需要强调的是: 1. python的线程属于内核级别的,即由操作系统控制调度(如单线程遇到io或执行时间过长就会被迫交出cpu执行权限,切换其他线程运行) 2. 单线程内开启协程,一旦遇到io,就会从应用程序级别(而非操作系统)控制切换,以此来提升效率(!!!非io操作的切换与效率无关) 对比操作系统控制线程的切换,用户在单线程内控制协程的切换

python并发编程之---协程

1.什么是协程 协程:是单线程下的并发,又称微线程,纤程. 协程是一种用户态的轻量级线程,协程是由用户程序自己控制调度的. 2.需要注意的点: 需要强调的是: #1. python的线程属于内核级别的,即由操作系统控制调度(如单线程遇到io或执行时间过长就会被迫交出cpu执行权限,切换其他线程运行) #2. 单线程内开启协程,一旦遇到io,就会从应用程序级别(而非操作系统)控制切换,以此来提升效率(!!!非io操作的切换与效率无关) 对比操作系统控制线程的切换,用户在单线程内控制协程的切换 优点

进程、协程、缓存

一.进程: (CPU密集型工作多线程有用) 进程创建(开销比较大): from multiprocessing import Process import threading import time def function(arg): time.sleep(2) print(arg) if __name__ == '__main__': # 进程创建的本质是调用os.fork,windows下不支持,只能写在 __name__ == '__main__' 中 for i in range(10

面向过程编程和面向对象编程的区别

面向过程编程 面向过程编程是一种以过程为中心的编程思想,分析出解决问题的步骤,然后用函数把这些步骤一步一步实现.面向过程编程,数据和对数据的操作是分离的. 面向对象编程 面向对象编程是将事物对象化,通过对象通信来解决问题.面向对象编程,数据和对数据的操作是绑定在一起的. 面向对象的三大基本特征: 封装:把客观事物封装成抽象的类,隐藏属性和方法的实现细节,仅对外公开接口. 继承:子类可以使用父类的所有功能,并且对这些功能进行扩展.继承的过程,就是从一般到特殊的过程. 多态:接口的多种不同的实现方式

Python 中的进程、线程、协程、同步、异步、回调

进程和线程究竟是什么东西?传统网络服务模型是如何工作的?协程和线程的关系和区别有哪些?IO过程在什么时间发生? 在刚刚结束的 PyCon2014 上海站,来自七牛云存储的 Python 高级工程师许智翔带来了关于 Python 的分享<Python中的进程.线程.协程.同步.异步.回调>. 一.上下文切换技术 简述 在进一步之前,让我们先回顾一下各种上下文切换技术. 不过首先说明一点术语.当我们说"上下文"的时候,指的是程序在执行中的一个状态.通常我们会用调用栈来表示这个状

java对管程的支持

管程的概念 管程 (英语:Moniters,也称为监视器) 是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥访问共享资源. 这些共享资源一般是硬件设备或一群变量.管程实现了在一个时间点,最多只有一个线程在执行管程的某个子程序. 与那些通过修改数据结构实现互斥访问的并发程序设计相比,管程实现很大程度上简化了程序设计. 管程提供了一种机制,线程可以临时放弃互斥访问,等待某些条件得到满足后,重新获得执行权恢复它的互斥访问. 一个管程包含: 多个彼此可以交互并共用资源的线程 多个与

进程线程协程那些事儿

一.进程与线程 1.进程 我们电脑的应用程序,都是进程,假设我们用的电脑是单核的,cpu同时只能执行一个进程.当程序出于I/O阻塞的时候,CPU如果和程序一起等待,那就太浪费了,cpu会去执行其他的程序,此时就涉及到切换,切换前要保存上一个程序运行的状态,才能恢复,所以就需要有个东西来记录这个东西,就可以引出进程的概念了. 进程就是一个程序在一个数据集上的一次动态执行过程.进程由程序,数据集,进程控制块三部分组成.程序用来描述进程哪些功能以及如何完成:数据集是程序执行过程中所使用的资源:进程控制

Day29:协程

一.协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈.因此: 协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上一次离开时所处逻辑流的位置. 1.1 yield与协程 import time """ 传统的生产者-消