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);
相关推荐
小猪写代码4 分钟前
Ubuntu C编程 (make工具和Makefile的引用)
linux·运维·ubuntu
肖爱Kun6 分钟前
LINUX中USB驱动架构—设备驱动
linux·驱动
白鹭9 分钟前
apache实现LAMP+apache(URL重定向)
linux·运维·apache·url重定向·apache实现lamp架构
aramae26 分钟前
终端之外:解锁Linux命令行的魔法与力量
linux·服务器·apache
椰子今天很可爱40 分钟前
线程分离和线程同步互斥
linux·c++
小柯J桑_1 小时前
Linux:线程控制
linux·c++·算法
arron88991 小时前
CentOS配置vsftpd服务器
linux·服务器·centos
A-刘晨阳1 小时前
【Linux】Docker update 深度解析:命令、常用参数与实战示例
linux·运维·docker
zmjjdank1ng1 小时前
容器问答题下
linux·运维
恣艺2 小时前
Redis环境搭建指南:Windows/Linux/Docker多场景安装与配置
linux·windows·redis