收藏 分销(赏)

Linux多线程编程讲稿.pptx

上传人:精*** 文档编号:10208630 上传时间:2025-04-27 格式:PPTX 页数:40 大小:266.29KB
下载 相关 举报
Linux多线程编程讲稿.pptx_第1页
第1页 / 共40页
Linux多线程编程讲稿.pptx_第2页
第2页 / 共40页
点击查看更多>>
资源描述
,Click to edit Master title style,Click to edit Master text stylesgood1,Second levelgood2,Third levelgood3,Fourth levelgood4,Fifth levelgood5,博创科技 嵌入互动,200,7,博,创科技,Click to edit Master title style,Click to edit Master text stylesgood1,Second levelgood2,Third levelgood3,Fourth levelgood4,Fifth levelgood5,博创科技 嵌入互动,200,7,博,创科技,第,四,讲,Linux,多线程编程,北京博创兴业科技有限公司,进程与线程(一,),使用多线程的理由之一是和进程相比,它是一种非常,节俭,的多任务操作方式。,在,Linux,系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种,昂贵,的多任务工作方式。,而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。,进程与线程(二),使用多线程的理由之二是线程间方便的通信机制。,不同的进程具有独立的数据空间,要进行数据的传递只能通过通信的方式进行,同一进程下的线程之间共享数据空间,所以一个线程的数据可以直接为其它线程所用,多线程程序的优点,提高应用程序响应。当一个操作耗时很长时,整个系统都会等待这个操作,多线程技术会将耗时长的操作(,time consuming,)置于一个新的线程。,使多,CPU,系统更加有效。操作系统会保证当线程数不大于,CPU,数目时,不同的线程运行于不同的,CPU,上。,改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分。,多线程编程起步,编写,Linux,下的多线程程序,需要使用头文件,pthread.h,,连接时需要使用库,libpthread.a,多线程程序实例,/*example.c*/#include#include void thread(void)int i;for(i=0;iwritepos+1)%BUFFER_SIZE=b-readpos),/,如果读写位置相同,pthread_cond_wait(,/,等待状态变量,b-notfull,,不满则跳出阻塞。,b-bufferb-writepos=data;/,写入数据,b-writepos+;,if(b-writepos=BUFFER_SIZE)b-writepos=0;,pthread_cond_signal(/,设置状态变量,pthread_mutex_unlock(/,释放互斥锁,消费者读取共享的循环缓冲区函数,GET,int get(struct prodcons*b),int data;,pthread_mutex_lock(/,获取互斥锁,while(b-writepos=b-readpos)/,如果读写位置相同,pthread_cond_wait(,/,等待状态变量,b-notempty,,不空则跳出阻塞。否则无数据可读。,data=b-bufferb-readpos;/,读取数据,b-readpos+;,if(b-readpos=BUFFER_SIZE)b-readpos=0;,pthread_cond_signal(/,设置状态变量,pthread_mutex_unlock(/,释放互斥锁,return data;,使用,GDB,调试工具,使用,gdb,调试工具观察线程间的相互切换,为便于观察先修改,BUFFER_SIZE,大小为,5,,修改,“,for(n=0;n,1000;n+),”,中,n30,$gcc -g pthread.c,lpthread,o pthread,$gdb pthread,$list,$break nline,$run,感谢您参加博创嵌入式教学培训!,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服