线程是运行在一个进程的基本执行流。

线程是进程调度的基本实体。

线程强调共享,但也有自己的私有资源。

为什么要有线程?

1.进程虽然独占资源,但对进程间通信维护比较不好,切换成本较大。

2.线程切换成本较小,线程运行在进程内部。


创建线程:

返回值:成功返回0,失败返回错误号。以前学过的系统函数都是成功返回0,失败返回-1,错误号保存在全局变量errno,pthread库的函数都是通过返回值返回错误号,虽然每个线程也都有一个errno,但这是为了兼容其它函数接口提供的,pthread库本身并不使用它,通过返回值返回错误码更加清晰。

在一个线程中调用pthread_create()创建新的线程后,当前线程从pthread_create()返回继续往下执行,而新的线程所执行的代码由我们传给pthread_create的函数指针start_routine决定。

终止线程:

1.从线程函数return。这种方法对主线程不适用,从主函数return相当于调用exit。

2.一个线程可以调用pthread_cancel()终止同一个进程中的另一个线程。

3.线程可以调用phread_exit()终止自己。

线程等待:

返回值,成功返回0,失败返回错误码。

分离线程:

线程是可结合的或者是可分离的,线程创建时默认是结合的。当前线程一旦被分离与主线程无关。

线程概念_第1张图片

线程概念_第2张图片