- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
QNX环境下多线程编程Multi-threadprogrammingunderQNX.PDF
QNX 环境下多线程编程
Multi-thread programming under QNX
邹海 边信黔 王二西
摘要:介绍了 QNX 实时操作系统和多线程编程技术,包括线程间同步的方法、多线程程序的
分析步骤、线程基本程序结构以及实用编译方法。
关键词:QNX;多线程;同步;程序结构
Abstract : This paper introduced QNX real-time platform and multi-thread
programming ,including synchronization methods between threads ,the analysis of
multi-thread programming ,their basic architecture ,and QNX makefile.
Keywords : QNX ,multi-thread , synchronization , program structure
0 引言:
QNX是由加拿大 QNX软件有限系统公司开发的一种多任务、分布式、可嵌入的实时操作
系统。它有着轻巧的微内核,可以对进程进行全面的地址保护,可剪裁,模块化程度高,实
时性强,安全可靠。符合POSIX标准的API使它成为一个开放式互联系统,便于与UNIX/LINUX
系统的移植。QNX有着不同于 UNIX或 LINUX的模块化设计思想,并不是 UNIX或 LINUX的一
种演化,而是完全不同的一种全新的实时操作系统。由于其独特的体系结构,QNX广泛应用
于嵌入式系统、机器人工程、工业控制、航空航天等各个领域。
在早期的 QNX 版本如 QNX4 中,对于线程的支持是比较弱的,在当时的条件下,处理大
型、复杂的并发多任务问题时,常常将问题分解为多个进程以降低问题的复杂性。而且 QNX
提供了与 UNIX类似的进程间通讯 IPC手段如消息、代理、信号灯等,功能也相对比较成熟、
完善。1999 年以后 QNX 软件公司推出了 QNX/Neutrino 实时操作系统的 Neutrino2.0、
Neutrino6.0增加了对于 POSIX线程的支持,标准的 API不但使它易于扩展,而且也使得编
写多线程程序变得容易。由于线程具上下文较轻、切换较快、在创建多个线程时系统的开销
比较小、通讯手段灵活多样、共享资源丰富等优点,在处理大型并发多任务问题时多线程有
了明显的优势。QNX 是抢先式多任务系统,这种系统决定了多个线程在访问共享资源时线程
执行的次序变得不可预期,所以线程间的同步就显得极为重要。QNX提供了多种同步机制以
保证多线程程序的安全、可靠。
1 QNX 多线程库函数简介
QNX与 LINUX不同,没有单独的线程库,与线程有关的 API是作为 C语言库函数的一部
分使用的,头文件是pthread.h,同样方便地提供线程的创建、终止和同步等功能。QNX
不仅在 C 语言库函数中提供了符合 POSIX1003.1c 标准的与线程相关的 API,而且还提供了
很多 POSIX标准没有的扩展功能,使得多线程编程变得更加容易。
1.1线程的创建、取消和终止
1.11线程的创建
int pthread_create( pthread t* thread, const pthread attr t* attr, void* (*start
routine)(void* ), void* arg ):被创建的线程执行start routine() 函数,thread返回
创建的线程描述符,而attr是创建线程时设置的线程属性,arg可以作为任意类型的参数传
给start routine ()函数。QNX对创建线程前需要设置的线程属性扩展如下:可以禁止一个线
程的取消(终止操作);可以设置一个线程的取消类型;可以指定当一个线程接到信号时,
它如何操作。
1
1.12 线程的取消
int pthread_cancel(pthread_t thread):函数取消由thread指定的线程,如果成功则返回
0,否则为非0,成功并不意味着thread会终止,要视取消的状态和类型而定。
1.13 线程的终止
void pthread exit(
您可能关注的文档
- Linux驱动前置-2虚拟地址高速缓存cache不不过cache并不-majiotto.PDF
- 大蒜素联合奥美拉唑根除幽门螺旋杆菌相关胃炎-海南医学.PDF
- 大连市民政系统行政给付和行政确认裁量权基准.doc
- LonzaNucleofector4D核转染系统培训手册-中国科学院生物化学与.PDF
- 天文数据挖掘人员-China-VO.ppt
- LP5560具有单线制接口的可编程LED驱动器-TexasInstruments.PDF
- LSPLiskov替换原则-南京大学计算机科学与技术系.PDF
- LX3V-2ADI-BD扩展模块用户指南.PDF
- l一一一一―川一一∥―一一―.PDF
- 太仓市第一中学戴红霞-木渎实验中学.doc
- 重庆新速达物业服务集团股份凯里公司招聘笔试题库2024.pdf
- 浙江杭州千岛湖泰众肉类食品有限公司招聘笔试题库2024.pdf
- 陕西新华出版传媒集团新华书店分公司招聘笔试题库2024.pdf
- 宁夏海原县肉牛产业发展集团有限公司招聘笔试题库2024.pdf
- 浙江温岭市化工轻工建筑材料有限公司招聘笔试题库2024.pdf
- 中航飞机汉中航空零组件制造有限公司招聘笔试题库2024.pdf
- 山东海阳市海昇矿产资源开发有限公司招聘笔试题库2024.pdf
- 山东潍坊寿光市公共交通运输有限公司招聘笔试题库2024.pdf
- 内蒙古察右前旗农业投资开发有限公司招聘笔试题库2024.pdf
- 线上清明祭英烈活动策划.pptx
最近下载
- 分布式光伏发电接入系统典型设计.pdf
- 2023年《普通心理学》考试复习题库(浓缩500题)(含答案).pdf VIP
- AReviewofEmotionRegulation情绪调节研究综述.PDF
- 徐州市社区卫生服务中心名单2021版170家(中心50家+站120家).docx VIP
- 踝关节扭伤精品.ppt VIP
- 青海省西宁市2020-2021学年七年级下学期期末数学试题(word版,含答案).doc VIP
- 2024云南省招聘社区工作者考试题.docx VIP
- 01B人教版新起点一年级下册单词表衡水体字帖(一起点).pdf
- 消毒供应室中心2023院感考试试题.pdf VIP
- 备战辽宁高考——考数学复习制胜法则.doc
文档评论(0)