12.RT-Thread生产者消费者问题-IPC对象

生产者消费者问题:线程同步问题

生产者--->产品(带缓冲区)--->消费者

生产者生产产品放到缓冲区,消费者从缓冲区拿产品消费,当缓冲区中产品满了之后,生产者会挂起,只有当消费者消费了一个产品之后,缓冲区产生一个空位,生产者才会继续生产。

对于缓冲区的访问是互斥的,缓冲区满了生产者要挂起,缓冲区空了消费者要挂起。

使用RT-Thread任务同步的相关机制给出一个生产者-消费者模型

/*
 * 程序清单:信号量例程
 *
 * 该例程创建了一个动态信号量和静态信号量,分别展示了获取信号量超时和获取成功的情况
 *
 */
#include <rtthread.h>

/* 信号量控制块 */
static struct rt_semaphore static_sem;
/* 指向信号量的指针 */
static rt_sem_t dynamic_sem = RT_NULL;

ALIGN(RT_ALIGN_SIZE)
static char thread1_stack[1024];
static struct rt_thread thread1;
static void rt_thread_entry1(void *parameter)
{
    rt_err_t result;
    rt_tick_t tick;

    /
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值