随笔分类 - c++
cpp
摘要:在linux下进行c++编写多线程程序时,基本上都会涉及到同步与互斥的情况.首先来说下互斥.比如说多个线程都需要对同一个变量X进行操作,但是在线程A对X进行操作时,如果线程B,C,D...也来同时进行,这就乱套了,都不知道是谁操作的结果.所有我们需要给这个变量加一把锁,等某一个线程操作完了,下一个线程才能进行操作.也就是说各个线程对X的操作是互斥的.接下来说说条件变量.比如我要等待变量X达到某一条件值(比如X>10),这时我才进行相关的处理.这时候,我就有可能需要时时刻刻都要关心这个条件是否成立,这有可能就需要不停的进入临界区查看条件是否成立,这样频繁的消耗CPU.而且每次进入临界区,别
阅读全文
摘要:定义 内存共享所指的是多个进程可以把同一段内存空间映射到自己的内存空间,以此来实现数据的共享与传输.它是所有IPC方式中最快的一种,因为它不需要中间环节,而是直接把一个内存段映射到调用进程的地址空间.内存共享是存在于内核级别的一种资源,在shell中使用命令ipcs可以用来查看当前系统IPC中的状态(包括Shared memory segments、Message queues、Semaphore arrays),在文件系统中/proc有对其进行描述的相应文件. 在系统内核为一个进程分配内存地址时,通过分页机制可以让一个进程的物理地址不连续,同时也可以让一段内存分配给不同的进程.所有的共享..
阅读全文
浙公网安备 33010602011771号