首页 > 其他分享 >信号量

信号量

时间:2024-04-03 10:45:59浏览次数:27  
标签:handle void 信号量 static sem pvParameters

二值信号量

SemaphoreHandle_t sem_handle;

sem_handle = xSemaphoreCreateBinary();

static void send_Task(void* pvParameters)
{
    while(1)
    {
        xSemaphoreGive(sem_handle);
        vTaskDelay(1000);
    }
    
}

static void receive_Task(void* pvParameters)
{
    while (1)
    {
        xSemaphoreTake(sem_handle, portMAX_DELAY);
        printf("接收二值信号量\r\n");
    }
}

计数信号量

SemaphoreHandle_t sem_count_handle;

sem_count_handle = xSemaphoreCreateCounting(5, 5);

static void send_Task(void* pvParameters)
{
    while(1)
    {
        vTaskDelay(1000);
        xSemaphoreGive(sem_count_handle);
        
    }
}

static void receive_Task(void* pvParameters)
{
    while (1)
    {
        xSemaphoreTake(sem_count_handle, portMAX_DELAY);
        printf("接收计数信号量\r\n");
    }
}

 

标签:handle,void,信号量,static,sem,pvParameters
From: https://www.cnblogs.com/njit-sam/p/18112135

相关文章

  • Java中的信号量Semaphore
    引言:        在Java编程中,信号量Semaphore是一种重要的同步工具,用于控制对共享资源的访问。本文将详细介绍信号量Semaphore的概念、用法以及一些示例。一、什么是信号量Semaphore?        信号量Semaphore是一种用于控制多个线程访问共享资源的同步工具。......
  • 【操作系统】千字解析信号量
    信号量机制是一种用于控制多进程或者多线程并发访问共享资源的同步机制。信号量实质上是一个整型计数器,通常用于表示可用资源的数量或许可证的数量,类似于一个整型的全局变量。不同于一般的整型变量,对信号量的操作只有两个:P操作和V操作P操作即wait操作,为进程申请一个资源S,S相应......
  • 操作系统实验6之信号量的实现与应用
    操作系统中常用信号量相关系统调用函数用法1、sem_open:用于创建或打开一个命名的信号量。点击查看代码#include<semaphore.h>sem_t*sem_open(constchar*name,intoflag,mode_tmode,unsignedintvalue);name:信号量的名称,必须以斜杠开头,例如/my_semaphore。oflag:......
  • 13_信号量
    信号量信号量的简介队列与信号量的对比二值信号量二值信号量相关API函数创建二值信号量函数释放二值信号量函数获取二值信号量函数二值信号量实验代码freertos_demo.c/**********************************************************************************......
  • Unix系统上使用semop函数写一个信号量函数,确保只有一个进程能访问临界资源
    semop是Unix系统调用,用于操作信号量集。信号量是一种用于保护共享资源或临界区域免受并发访问的同步原语。以下是一个使用semop的简单示例,确保只有一个进程能访问临界资源:#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<fcntl.h>#include<......
  • 操作系统综合题之“请填写信号量值并说明操作结果(正常、阻塞或唤醒。如阻塞或者唤醒,需
    1.问题:题36表是两个同步进程的模拟执行,生产者将物品放入共享缓冲区供消费者使用,缓冲区可放2件物品,使用2个信号量,并置初值为S1=2,S2=0.现已知操作情况,请填写信号量值并说明操作结果(正常、阻塞或唤醒。如阻塞或者唤醒,需说明阻塞或者被唤醒的是P1还是P2)。(提示:缓冲区满,不许放物品;缓......
  • 操作系统综合题之“用记录型信号量机制的wait操作和signal操作写出三个进程的同步代码
    1.问题:假设一个水果赛选系统由三个进程A、B、C组成。进程A每次取一个水果,之后存放在货架F上,F的容量为每次只能存放一个水果。若货架上存放的是苹果则让进程B取出,并存放到苹果箱中;若货架上存放的是菠萝则让进程C取出后,将其存放到菠萝框中(1)列出所需的信号量并初始化(2)请用记录型信......
  • 操作系统综合题之“用记录型信号量机制的wait和signal操作来解决了由北向南和由南向北
    1.问题:假设系统有三个并发进程read、move和print共享缓冲区B1和B2。进程read负责从输入设备上读取信息,每读取一条记录后把它存如缓冲区B1中;进程move负责从缓冲区B1中取出一条记录,整理后放入缓冲区B2;进程print负责将缓冲区B2中的记录取出并打印输出。缓冲区B1和B2每次只能存放1个......
  • 操作系统综合题之“用记录型信号量机制的wait和signal操作来解决了由北向南和由南向北
    1.问题:一条哦东西走向河流上,有一根南北走向的独木桥,要想过河只能通过这根独木桥。只要人们朝着相同的方向过独木桥,同一时刻允许有多个人可以通过。如果在相反的方向上同时有两个人过独木桥则会发生死锁。如果一个人想过河,他必须看当前独木桥的通信情况,若当前的通行方向与他的过河......
  • 操作系统综合题之“用记录型信号量机制的wait和signal操作来保证文件的正确打印,并写出
    1.问题:有两个进程pA和pB合作解决文件打印的问题:pA将文件记录从磁盘读入住库存的缓冲区,每次执行一次读一个记录;pB将缓冲区的内容打印出来,每次执行一次打印一个记录。缓冲区的大小等于一个记录大小请用记录型信号量机制的wait(S)和signal(S)操作来保证文件的正确打印,并写出同步代码2.......