VxWorks下实现信号量的简单示例代码

作者:佚名 上传时间:2023-05-29 运行软件:Wind River 软件版本:VxWorks 6.9 版权申诉

介绍了在VxWorks操作系统中通过信号量来控制多任务之间共享资源的实现方式,通过一个简单的示例展示信号量如何应用于多任务并发处理。

#include <stdio.h>
#include <taskLib.h>
#include <semLib.h>

/* 定义信号量 */
SEM_ID sem1;

/* 任务1:通过信号量来占用临界资源 */
void task1()
{
    taskDelay(10);   /*延时10秒*/
    semTake(sem1, WAIT_FOREVER);  /* 等待信号量的释放 */
    printf("Task1获得临界资源...\n");
    semGive(sem1);   /* 释放信号量 */
}

/* 任务2:通过信号量来占用临界资源 */
void task2()
{
    semTake(sem1, WAIT_FOREVER);  /* 等待信号量的释放 */
    printf("Task2获得临界资源...\n");
    semGive(sem1);  /* 释放信号量 */
}

/* 进程入口 */
int semDemo()
{
    sem1 = semBCreate(SEM_Q_FIFO, SEM_EMPTY); /* 创建信号量 */
    if(sem1 == NULL) {
        printf("Semaphore creation failed!\n");
        return -1;
    }

    /* 创建任务 */
    taskSpawn("t1", 100, 0, 2000, (FUNCPTR)task1, 0, 0, 0, 0, 0, 0, 0, 0,0);
    taskSpawn("t2", 100, 0, 2000, (FUNCPTR)task2, 0, 0, 0, 0, 0, 0, 0, 0,0);
    return 0;
}

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
VxWorks实现信号量简单示例代码
介绍了在VxWorks操作系统中通过信号量来控制多任务之间共享资源的实现方式,通过一个简单的示例展示信号量如何应用于多任务并发处理。#include <stdio.h>#include
VxWorks 6.9
Wind River
2023-05-29 00:43
VxWorks实现信号量机制示例代码
本示例代码展示了如何使用VxWorks操作系统下的信号量机制来实现进程间的同步与互斥。使用一个信号量变量作为资源,通过P、V操作来实现进程的互斥和同步。#include <vxWorks.h&
Wind River VxWorks 7
Wind River Systems
2023-04-15 01:36
VxWorks实现信号量示例代码
VxWorks中,信号量是一种常用的同步机制。该示例代码演示如何使用信号量实现对共享资源的互斥访问。#include <vxWorks.h>#include <semLib.h&
VxWorks 6.9
Wind River Systems
2023-04-20 00:23
vc实现类似vxworks消息队列和信号量功能
最近在做vxworks下的项目开发 感觉其自带的消息队列MSG_Q_ID和信号量SEM_ID特别好用。于是想办法在vc做了个类似的东西,函数原型都一致。这样,我在vxworks下做好的程序几乎不用做太
RAR
0B
2019-02-10 23:50
VxWorks实现互斥信号量示例代码
本示例代码展示了如何在VxWorks操作系统中实现互斥信号量,即Mutex。Mutex是一种常用的同步机制,它可以保护共享资源的访问,避免多个任务同时修改数据而导致的数据破坏。在本示例中,Mutex被
VxWorks 6.9
Wind River Systems
2023-04-29 17:54
Vxworks信号量分析
Wind内核中有二进制信号量、计数信号量和互斥信号量三种类型,为了使应用程序具有可移植性,还提供了POSIX(可移植操作系统接口)信号量。在Vxorks操作系统中,信号量是实现任务同步的主要手段,也是
DOC
0B
2019-05-13 12:52
vxworks实验信号量
vxworks实验,信号量。有实例代码。vxworks实验信号量。有实例代码。
PDF
0B
2019-07-06 21:56
Vxworks信号量机制实现任务同步
vxworks 的信号量机制实现同步任务
PDF
0B
2018-12-09 17:15
golang模拟实现带超时信号量示例代码
主要给大家介绍了关于golang模拟实现带超时的信号量的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
PDF
66KB
2020-12-22 10:25
VxWorks信号量使用示例代码
本示例代码演示了在VxWorks中如何使用信号量来控制进程的访问顺序。当信号量计数器为0时,任务挂起等待机会。当计数器为1时,任务可以直接执行。#include <semLib.h>S
VxWorks 7
VxWorks
2023-03-24 04:57