Linux 高级编程——线程 pthread

线程:线程是在一个程序内部可以被操作系统调度并发运行的任务。

① 线程有自己的运行线索,可完成特定任务。

② 线程自己基本上不拥有系统资源,只拥有少量在运行中必不可少的资源(如:程序计数器、一组寄存器、栈、线程信号掩码、局部线程变量和线程私有数据)。

③ 与同属一个进程的其他进程共享进程所拥有的全部资源(同一地址空间、通用的信号处理机制,数据与I/O)

④ 可通过相互之间协同来完成进程所要完成的任务。

线程的优点:

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

② 线程间方便的通信方式。对于不同进程。它们具有独立的数据空间,要进行数据的传递只能通过进程间通信的方式进行,这种方式不仅费时,而且很不方便。线程则不然,由于统一进程下的线程之间共享数据空间,所以一个线程的数据可以直接为其他线程所用,这不仅快捷,而且方便。

县城背景

早期各硬件厂商主要使用私有版本线程库,实现差异非常大,开发者难以开发可移植的线程应用为能够最大限度的提高线程的性能,需要一个标准的编程接口。

① 对于UNIX系统,IEEE POSIX 1003.1c标准(1995)定义了这样的接口。

② 遵从该标准实现的线程被称为POSIX线程,或ptrhreads:√ pthreads定义了一套C语言编程接口和函数调用。 √ 包括了一个pthread.h 头文件和一个线程库。

③ 基于POSIX标准的线程编程接口

√ 编写时需要用#include

√ 编译时需要加上-lpthread

例如:gcc -g **.c -o *** -lpthread 

 

 

 

你可能感兴趣的:(文件,Linux高级编程——线程)