![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
轩渊
这个作者很懒,什么都没留下…
展开
-
生产者,消费者同步 linux实现
实现原理是用的信号量操作semget,semctl,semop原理参考链接:https://blog.csdn.net/weixin_44932880/article/details/109827754设定一百的初值,一个生产者,每次生产3,三个消费者每次消费1.消费的时间大概是生产的两倍。#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/ipc.h>原创 2020-11-19 22:24:40 · 220 阅读 · 0 评论 -
fork使用
forkfork系统调用用于创建一个新进程,称为子进程,它与进程(称为系统调用fork的进程)同时运行,此进程称为父进程。创建新的子进程后,两个进程将执行fork()系统调用之后的下一条指令。子进程使用相同的pc(程序计数器),相同的CPU寄存器,在父进程中使用的相同打开文件。pid_t fork ( void);(pid_t 是一个宏定义,其实质是int 被定义在#include<sys/types.h>中)返回值负值:创建子进程失败。零:返回到新创建的子进程。正值:返回原创 2020-11-19 22:16:25 · 2785 阅读 · 0 评论 -
信号量操作 linux
信号量(Semaphore)是一种用于实现计算机资源共享的IPC(进程间通信)机制之一,其本质是一个计数器。信号量是在多进程环境下实现资源互斥访问或共享资源访问的方法,可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,进程/线程必须获取一个信号量;一旦该关键代码段完成了,那么该进程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个进程释放信号量。信号量有两种应用形式:一种用于临界资源的互斥访问,临界资源在同一时刻只允许一个进程使用,此时的信号量是一个二元信号原创 2020-11-19 22:15:16 · 701 阅读 · 0 评论