Linux信号量

Linux之进程间通信
信号量

  • 进程间通信IPC的目的:数据传送、进程同步或互斥

信号量

c 复制代码
#include <sys/ipc.h>
#include <sys/sem.h>

int main()
{
	//申请信号量
	semget();

	semctl();
}

POSIX IPC

信号量

无名信号量

  • 可用于线程间通信
c 复制代码
#include <semaphore.h>
int main()
{
	sem_t sem_id;
	
	sem_init(&sem_id, 0, 1);	//初始化信号量

	sem_wait(&sem_id);		//P操作, will block
	//sem_trywait(&sem_id);	//try to P操作, won't block
	
	//访问临界资源
	
	sem_post(&sem_id);		//V操作
	
	sem_destroy(&sem_id);	//销毁信号量
}

有名信号量

c 复制代码
char* SEM_NAME = "sem1";

//初始化信号量
sem_t* mutex = sem_open(SEM_NAME, O_CREAT, 0644, 1);

sem_wait(mutex);
//访问临界资源
sem_post(mutex);

sem_close(mutex);
sem_unlink(SEM_NAME);
相关推荐
对你无可奈何34 分钟前
高可用环境下Nginx服务管理脚本优化实践
linux·运维·nginx
无聊的烤苕皮1 小时前
RHCE(RHCSA复习:npm、dnf、源码安装实验)
linux·npm·云计算·dnf·rhcsa
xxxx1234451 小时前
Linux驱动开发-①pinctrl 和 gpio 子系统②并发和竞争③内核定时器
linux·驱动开发·单片机
stone08231 小时前
ABAP语言的动态编程(4) - 综合案例:管理费用明细表
linux·运维·服务器
厂里英才2 小时前
docker无法正常拉取镜像问题的解决
linux·docker
mljy.2 小时前
Linux《进度条》
linux
顾林海2 小时前
解锁Android应用进程启动:从代码到原理深度剖析
android·linux·操作系统
沢田纲吉3 小时前
Linux:万字博客带你学会线程!
linux·后端·操作系统
努力犯错玩AI3 小时前
轻松部署Gemma3-27B,L20服务器+最新版vLLM高效推理
linux·后端·python
qwfys2003 小时前
How to install cangjie on Linux mint 22.1
linux·install·cangjie·mint