- 博客(4)
- 收藏
- 关注
原创 进程间的通讯方式_信号量
信号量 当我们编写的程序使用了线程时,不管它是运行在多用户系统上、多线程系统上,还是运行在多用户多进程系统上,我们通常会发现程序中存在着一部分临界代码,我们需要只有一个进程(或一个执行线程)可以进入这个临界代码并拥有对资源独占式的访问权。为了防止出现因多个程序同时访问一个共享资源而引发的问题,我们需要有一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的
2017-10-28 21:52:27 296
原创 进程间的通讯方式_管道(无名管道)
无名管道 是相对于有名管道而言的,无名管道在使用时产生,不使用后释放,并不会再系统上留下任何蛛丝马迹。 无名管道因其使用前没有任何的标示,所以它只能应用于父子进程之间。 子进程会复制父进程的文件表数组(浅拷贝)。 无名管道的相关操作: 创建:int pipe(int fd[2]); //fd[0] 读 //fd[1] 写
2017-10-28 18:39:54 258
原创 进程间的通讯方式_管道(有名管道)
当从一个进程连接数据流到另一个进程时,我们使用属于管道(pipe)。我们通常是把一个进程的输出通过管道连接到另一个进程的输入。 (管道是在内存上开辟出一块空间,不被任何其他进程所占用的)管道包括全双工通讯和半双工通讯。 管道原理: 管道操作: 有名管道:应用于任意两个进程之间数据的单向传递 创建:命令方式(mkfifo)、函数方式(mkfifo)
2017-10-22 23:39:55 438
原创 数据结构_循环链表
循环链表(带头节点) (与单链表类似,只是尾结点的 next 指向头节点) 循环链表的结构如下: 1. 循环链表的结构体定义,代码如下 typedef struct CNode { int data; struct CNode *next; }CNode,*CList; 2. 循环链表的初始化,代码如下 void InitList(CList plist) { assert
2017-10-11 21:32:50 262
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人