QNX多线程同步之Mutex

本文详细介绍了QNX系统中多线程同步的重要性和Mutex的使用方法。通过示例代码解析Mutex如何避免线程间的资源冲突,确保全局变量在同一时刻只被一个线程访问,防止逻辑错误的发生。同时,文章强调了好奇心在学习过程中的关键作用。

 之前提到了QNX上的线程创建方法,现在进一步学习QNX上多线程的同步。曾经编写过多线程应用的同学们都知道线程之间的同步在多线程环境中特别重要,线程之间如果没有同步好,经常会出现逻辑错误。

有关QNX线程同步在QNX官方文档《QNX Neutrino Programmer’s Guide》和《Getting Started with QNX Neutrino》中都有详细的讲述,同学们可以从中学习相关的理论知识。不过,文档中的描述总是比较抽象,不如直接看样例来的简单。

在QNX Momentics环境中提供了使用Mutex同步线程的样例,同学们通过“File -> New -> Examples... ->QNX Neutrino Example -> QNX Example Neutrino Mutex Project”可以导入样例并测试。下面就根据这个样例分析一下QNX多线程同步中Mutex的使用。

 

线程之间之所以要同步,是因为不同线程可能会访问同一资源。如果两个线程各自使用自己的资源,就不会有线程同步的问题了。在QNX环境中,定义的全局变量是各线程共用的,线程方法内定义的变量是私有的。当不同线程要访问同一个全局变量时,就需要考虑线程同步的问题了。

我们从QNX Momentics的Mutex样例中可以看到两个变量的定义:firstname和lastname。两个变量都定义在具体方法外,属于全局变量。

#include <stdlib.h>

#include <stdio.h>

//…

char *firstname;

char *lastname;

int main(int argc, char *argv[]) {

//…</

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值