进程 进程,直观点说,保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己独立的地址空间,有自己的堆。 上级挂靠单位是操作系统。操作系统会以进程为单位,分配系统资源(CPU时间片、内存等资源)。进程是资源分配的最小单位。 进程是线程的容器。程序是指令,数据及其组织形式的描 ...
分类:
编程语言 时间:
2020-06-02 13:19:58
阅读次数:
55
代码: 1 from PyQt5.QtWidgets import QWidget, QRadioButton, QApplication, QPushButton, QMessageBox, QButtonGroup 2 import sys 3 4 class Example(QWidget): ...
分类:
其他好文 时间:
2020-06-01 00:45:42
阅读次数:
68
信号量通常用于进程并发控制,此处并发有两个含义:进程共享资源的互斥,进程时序关系控制。这两种方式也是信号量最常见的应用。互斥量作为共享资源互斥最常用的方式,只能用于单一进程(要实现多进程,可以采用共享内存映射某个互斥量,但一般不这么做)。在Linux操作系统中,有两种类型的信号量:XSI信号量和PO ...
分类:
系统相关 时间:
2020-05-31 14:31:05
阅读次数:
88
@ 一、基本概念 在多线程环境中,有多个线程竞争同一个公共资源,就很容易引发线程安全的问题。因此就需要引入锁的机制,来保证任意时候只有一个线程在访问公共资源。 互斥量就是个类对象,可以理解为一把锁,多个线程尝试用lock()成员函数来加锁,只有一个线程能锁定成功,如果没有锁成功,那么流程将卡在loc ...
分类:
编程语言 时间:
2020-05-31 12:57:50
阅读次数:
73
李微微 201821121001 计算1811 1. 选择哪一个问题 哲学家进餐问题 有五个哲学家,他们的生活方式是交替地进行思考和进餐,哲学家们共用一张圆桌,分别坐在周围的五张椅子上,在圆桌上有五个碗和五支筷子,平时哲学家进行思考,饥饿时便试图取其左、右最靠近他的筷子,只有在他拿到两支筷子时才能进 ...
分类:
系统相关 时间:
2020-05-30 00:52:42
阅读次数:
98
无论是三种中的哪一种,在没有程序占用临界区时,读者与写者之间的竞争都是公平的,所谓的不公平(优先)是在读者优先和写者优先中,优先方只要占有了临界区,那么之后所有优先方的程序(读者或写者)便占有了临界区的主导权,除非没有优先方程序提出要求,否则始终是优先方的程序占有临界区,反观非优先方即使某一次占有了 ...
分类:
其他好文 时间:
2020-05-29 13:42:07
阅读次数:
193
1.什么是死锁? 死锁是由于两个或以上的线程互相持有对方需要的资源,且都不释放占有的资源,导致这些线程处于等待状态,程序无法执行。 2.产生死锁的四个必要条件 1.互斥性:线程对资源的占有是排他性的,一个资源只能被一个线程占有,直到释放。 2.请求和保持条件:一个线程对请求被占有资源发生阻塞时,对已 ...
分类:
编程语言 时间:
2020-05-28 21:39:30
阅读次数:
87
一、互斥体 内核级临界资源(跨进程),互斥体可以看成能够放进内核(0环)中的一种令牌。 HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes, // SD //安全描述符 BOOL bInitialOwner, // initial ...
郑楚杭 201821121009 计算1811 1. 选择哪一个问题 选题为哲学家就餐问题 2. 给出伪代码 算法思想: philosopher代表一个哲学家的活动,将其创建为五个不同的线程代表五位不同的哲学家。每位哲学家先思考(伪代码中的think) ,当某位哲学家饥饿的时候(伪代码中的hungr ...
分类:
系统相关 时间:
2020-05-28 14:56:58
阅读次数:
79
CreateMutexA CreateMutexExA CreateMutexExW CreateMutexW 可以用互斥量作为单实例应用控制, 如: 进程A创建互斥量Mutex, 启动进程B创建互斥量Mutex失败,这时候就不打开进程B而是打开进程A HANDLE hMutex = ::Creat ...