【C语言】进程-信号量

本文介绍了如何在C语言中使用信号量进行进程间的同步操作。通过创建和初始化信号量,以及利用semget(), semctl() 和 semop() 函数,实现进程在获取锁后执行特定任务,无锁时进入等待状态。信号量的操作包括增加和减少,通过这些操作控制进程的执行顺序,确保资源的排他访问。" 104616825,7482098,Python初学者指南:Emoji互动,"['Python类', 'python示例']
摘要由CSDN通过智能技术生成

Demo实现

#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>


union semun {
   
        int              val;    /* Value for SETVAL */
        struct semid_ds *buf;    /* Buffer for IPC_STAT, IPC_SET */
        unsigned short  *array;  /* Array for GETALL, SETALL */
        struct seminfo  *__buf;  /* Buffer for IPC_INFO
                                    (Linux-specific) */
};

// 拿锁
void pGetKey(int id)
{
   
        struct sembuf set;
		// 信号量的编号,信号量集里面只有一个,默认就是0
        set.sem_num = 0;
        // 操作   减少1
        set.sem_op = -1;
        // 没有锁的执行操作   UNDO为等待让进程中断,NOWAIT为不等待
        set.sem_flg &#
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值