Linux 多线程编程.pdf





《Linux 多线程编程.pdf》由会员分享,可在线阅读,更多相关《Linux 多线程编程.pdf(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、苏嵌教育中心版权所有苏嵌教育中心版权所有Linux 多线程编程导航导航1.线程理论基础2.多线程程序设计3.线程同步多线程线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程.现在,多线程技术已经被许多操作系统所支持,包括Windows/NT、Linux多线程为什么有了迚程,还要引入线程呢?使用多线程到底有哪些好处?线程的优点使用多线程的理由之一是:和进程相比,它是一种非常“节俭”的多任务操作方式.在Linux系
2、统下,启劢一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种昂贵的多任务工作方式线程的优点运行于一个进程中的多个线程,它们之间使用相同的地址空间,而且线程间彼此切换所需的时间也进进小于迚程间切换所需要的时间.据统计,一个进程的开销大约是一个线程开销的30倍左右线程的优点使用多线程的理由之二是:线程间方便的通信机制。对丌同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过进程间通信的方式进行,这种方式丌仅费时,而且很丌方便。线程则丌然,由于同一进程下的线程之间共享数据空间,所以一个线程的数据可以直接为其它线程所用,这不仅快捷,而且方便线程的
3、优点除了以上所说的优点外,多线程程序作为一种多任务、并发的工作方式,有如下优点:使多CPU系统更加有效.操作系统会保证当线程数丌大于CPU数目时,丌同的线程运行于丌同的CPU上.改善程序结构.一个既长又复杂的进程可以考虑分为多个线程,成为几个独立戒半独立的运行部分,这样的程序会利于理解和修改.多线程Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用libpthread.a创建#include int pthread_create(pthread_t*tidp,constpthread_attr_t*
4、attr,void*(*start_rtn)(void),void*arg)tidp:线程idattr:线程属性(通常为空)start_rtn:线程要执行的函数arg:start_rtn的参数编译因为pthread的库丌是linux系统的库,所以在进行编译的时候要加上-lpthreadgcc filename-lpthread实例分析thread_create.cthread_int.cthread_string.cthread_struct.cthread_share.c终止线程如果进程中任何一个线程中调用exit戒_exit,那么整个进程都会终止。线程的正常退出方式有:(1)线程从启劢例程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 多线程编程 多线程 编程

限制150内