《Linux基础及应用教程》课件第6章 Linux下线程编程概述.ppt

上传人(卖家):momomo 文档编号:7379277 上传时间:2023-12-15 格式:PPT 页数:11 大小:559.50KB
下载 相关 举报
《Linux基础及应用教程》课件第6章 Linux下线程编程概述.ppt_第1页
第1页 / 共11页
《Linux基础及应用教程》课件第6章 Linux下线程编程概述.ppt_第2页
第2页 / 共11页
《Linux基础及应用教程》课件第6章 Linux下线程编程概述.ppt_第3页
第3页 / 共11页
《Linux基础及应用教程》课件第6章 Linux下线程编程概述.ppt_第4页
第4页 / 共11页
《Linux基础及应用教程》课件第6章 Linux下线程编程概述.ppt_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、 6.1 Linux下线程概述多线程程序作为一种多任务、并发的工作方式,当然有以下的优点:(1)提高应用程序响应。(2)使多CPU系统更加有效。(3)改善程序结构。6.2 Linux线程实现6.2.1 一个简单的多线程程序Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。Linux下pthread的实现是通过系统调用clone()来实现的。clone()是Linux所特有的系统调用。6.2.2 修改线程的属性 属性结构为pthread_attr_t,它同样在头文件/usr

2、/include/pthread.h中定义。属性值不能直接设置,须使用相关函数进行操作,初始化的函数为pthread_attr_init,这个函数必须在pthread_create函数之前调用。属性对象主要包括是否绑定、是否分离、堆栈地址、堆栈大小、优先级。默认的属性为非绑定、非分离、缺省1M的堆栈、与父进程同样级别的优先级。设置线程绑定状态的函数为pthread_attr_setscope,它有两个参数,第一个是指向属性结构的指针,第二个是绑定类型,它有两个取值:PTHREAD_SCOPE_SYSTEM(绑定的)和PTHREAD_SCOPE_PROCESS(非绑定的)。6.2.3 线程的数据

3、处理1线程数据在单线程的程序里,有两种基本的数据:全局变量和局部变量。但在多线程程序里,还有第三种数据类型:线程数据(TSD:Thread-Specific Data)。和线程数据相关的函数主要有4个:创建一个键;为一个键指定线程数据;从一个键读取线程数据;删除键。创建键的函数原型为:extern int pthread_key_create _P(pthread_key_t*_key,void(*_destr_function)(void*);POSIX提供两种线程同步的方法,互斥锁mutex和条件变量。mutex是一种简单的加锁的方法来控制对共享资源的存取。但mutex的缺点在于它只有两个

4、状态,锁定和非锁定。POSIX的条件变量通过允许线程阻塞和等待另一个线程的信号方法,从而弥补了mutex的不足。当接受到一个信号时,阻塞线程将会被唤起,并试图获得相关的mutex的锁。2互斥锁 互斥锁用来保证一段时间内只有一个线程在执行一段代码。必要性显而易见:假设各个线程向同一个文件顺序写入数据,最后得到的结果一定是灾难性的。3条件变量 条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足,它常和互斥锁一起使用。使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程往往解开相应的互斥锁并等待条件发生变化。一旦其它的某个线程改变了条件变量,它将通知相应的条件变量唤醒一个或

5、多个正被此条件变量阻塞的线程。这些线程将重新锁定互斥锁并重新测试条件是否满足。一般说来,条件变量被用来进行线承间的同步。条件变量的结构为pthread_cond_t,函数pthread_cond_init()被用来初始化一个条件变量。它的原型为:extern int pthread_cond_init _P(pthread_cond_t*_cond,_const pthread_condattr_t*_cond_attr);4信号量 信号量本质上是一个非负的整数计数器,它被用来控制对公共资源的访问。当公共资源增加时,调用函数sem_post()增加信号量。信号量的数据类型为结构sem_t,它本质上是一个长整型的数。函数sem_init()用来初始化一个信号量。它的原型为:extern int sem_init _P(sem_t*_sem,int _pshared,unsigned int _value);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中职 > 电脑技术
版权提示 | 免责声明

1,本文(《Linux基础及应用教程》课件第6章 Linux下线程编程概述.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|