Linux多线程编程初步

 1、Process (进程)

进程,是管理程序运行的资源。(Process is container of the memory and resoures of the program)。

每个进程至少拥有一个线程(任务)来执行程序。

2、 Thread (线程)

线程是程序运行的通道, 操作系统通过线程, 按照一定顺序去逐步执行程序。 (A  thread is the path taken by a program while running, the steps performed, and the order in which the steps are performed.) 所有的程序都拥有至少一个线程,对于多线程的程序而言,每一个线程都是独立于其它的线程运行的。
进程中运行的第一个线程,称为初始线程(Initial thread)

 

2.1 线程的属性


可以在启动一个线程时设置线程的属性,或在线程运行的时候更改这些属性。常见的线程属性:
优 先 级  :  系统分配的运行时间
堆栈空间 :  影响到线程可以调用的函数数量
名        字  :  我们可以根据线程的名字,来 DEBUG或是 TRACK这个运行中的线程
线 程 组  :  我们可以通过线程组,来管理同一时间运行的多个线程
Detach state :  这个状态标识了当线程结束时,我们如何回收,或保留这个线程使用过的资源
任务计划 :  线程在系统或在应用中是如何被安排、计划的。
继        承 :  判断线程的属性是否继承

 

2.2 线程的常用函数

常用函数
函数 使用
pthread_create int pthread_create(pthread_t *tid, const pthread_attr_t *tattr,void*(*start_routine)(void *), void *arg);

使用pthread_create可以向当前进程中添加新的受控线程。

返回值
pthread_create()在调用成功完成之后返回零。其他任何返回值都表示出现了错误。如果检测到以下任一情况,pthread_create()将失败并返回相应的值。
EAGAIN
描述:超出了系统限制,如创建的线程太多。
EINVAL
描述: tattr的值无效

pthread_join

函数会一直阻塞调用线程,直到指定的线程终止。

指定的线程必须位于当前的进程中,而且不得是分离线程。

在pthread_join()返回之后,应用程序可回收与已终止线程关联的任何数据存储空间。

pthread_self 返回调用线程的thread identifier。
pthread_equal 比较线程ID

剩下的函数慢慢补充

 

你可能感兴趣的:(Linux多线程编程)