5.4-多线程实验.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.4-多线程实验

3.实验内容 4.实验预习要求 5.实验原理 5.实验原理 5.实验原理 5.实验原理 6.实验步骤 6.实验步骤 7.思考题 * MagicARM2410教学实验开发平台 广州致远电子有限公司 * 1.实验目的 掌握Linux多线程程序编写; Linux多线程实验 硬件: PC机 1台 MagicARM2410教学实验开发平台 1台 软件: RedHat Linux 9.0操作系统 嵌入式Linux开发环境 2.实验设备 创建两个线程,各自统计发生次数,主程序监测两个线程的返回值。 熟悉NFS方式调试Linux应用程序; 熟悉Linux线程相关知识。 线程是一种标准化模型,它用于把一个程序分成一组能够同时执行的任务。线程是一种特殊的进程,常称之为轻量级进程(light-weight process)。一个进程的所有线程有独立的执行线索和堆栈,但共享数据。 使用多线程的应用程序,必须包含pthread.h文件,同时在链接程序的时候加上-lpthread参数。 线程的属性 Joinable--具有joinable属性的线程在执行完毕后并不会立即被Linux清除,如果函数有返回值,其返回值可通过pthread_join()函数调用得到。 Detatched--具有detatched属性的线程,执行完毕立即被Linux清除,无法通过pthread_join()函数调用获得其返回值。 建立线程的的时候如果没有指定属性,默认为joinable属性。 创建线程 创建线程使用pthread_create()函数实现。函数原型: int pthread_create(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine) (void *), void *arg) ? 包含4个参数: thread_id――指向新线程标识的指针。 attr――决定新线程的属性。 *start_routine――指向新线程中将要执行的函数的指针。 arg――传递给新线程函数的参数。 挂起线程 挂起线程使用pthread_join()函数实现。函数原型: int pthread_join(pthread_t th, void **thread_return) pthread_join()调用挂起当前线程,直到th指定的线程终止运行为止。 如果线程有返回值,返回值保存在thread_return指向的地址中。一个线程所使用的内存资源在对该线程应用pthread_join()调用之前不会被重新分配。 (1)在实验工作目录下,为本实验建立工作目录thread。 $ cd /zylinux/armwork $ mkdir thread (2)进入thread目录,使用自己熟悉的编辑器(如vi)建立文件thread.c,并编写程序代码。 (3)将光盘相应工程的Makefile文件复制到当前目录下,使用编辑器将其打开,并对Makefile文件进行如下修改保存,退出编辑器。 EXEC = thread OBJS = thread.o SRC = thread.c? (4)输入make命令,对程序进行编译,编译完毕在当前目录下会生成可执行文件thread。 $ make ? (5)启动ARM Linux,进行NFS连接,进入/mnt/thread目录,执行thread程序。 # ./thread ? Detached线程和Joinable线程有何区别?如何正确使用Thread_join机制? * MagicARM2410教学实验开发平台 广州致远电子有限公司

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档