linux_c 开发(6-1)多线程程序设计_线程基础

多线程

线程(thread)技术早在60年代就被提出来了,但真正应用多线程到操作系统中去,实在80年代中期,solaris是这方面的佼佼者。传统的UNIX也支持线程的概念,但是在一个进程中只允许有一个线程,这样多线程就意味着多进程。现在多线程技术已经被许多操作系统所支持,包括Windows/NT、Linux。
优点:
和进程相比,它是一种非常“节俭”的多任务操作方式。在linux系统下,启动一个新的进程必须分配给他独立的空间地址,建立众多的数据表来维护他的代码段、堆栈段和数据段,这是一种昂贵的多任务工作方式。

运行于同一个进程中的多个线程,他们之间使用的是相同的地址空间,而且线程之间的彼此切换所需的时间远远小于进程间切换所需的时间。据统计一个进程的开销大概是一个线程开销的30倍左右。

使用多线程的理由之二是;
线程间方便的通信机制。对不同的进程来说,他们具有独立的数据空间,要进行数据的传递只能通过进程间通信的方式进行,这种方式不仅耗时,而且很不方便。线程不然,由于同一进程下的线程之间共享数据空间所以一个线程的数据可以直接给其他线程使用,这样不仅快捷,而且很方便。

除了以上所说的优点外,多线程程序作为一种多任务、并发的工作方式,有如下优点:
1、使用CPU系统更加有效,。操作系统会保证当线程数不大于CPU数目时,不同的线程运行于不同的CPU上。
2、改善程序结构。一个长又复杂的进程可以考虑分为多个线程,分成几个独立或半独立的运行部分,这种程序会利于理解和修改。

linux系统下的多线程遵循posix线程接口,称为pthread。编写linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章