线程概念
典型的UNIX进程可以看成只有一个控制线程:一个进程在某一时刻只能做一件事情。
有了多个控制线程以后,在程序设计时就可以把进程设计成在某一时刻能够做不止一件事,每个线程处理各自独立的任务。
这种方法有很多好处。
- 通过为每种事件类型分配单独的处理线程,可以简化处理异步事件的代码。
- 多个进程必须使用操作系统提供的复杂机制才能实现内存和文件描述符的共享。而多个线程自动地可以访问相同的存储地址空间和文件描述符。
- 有些问题可以分解从而提高整个程序的吞吐量。
- 交互的程序通用可以通过使用多线程来改善响应时间,多线程可以把程序中处理用户输入输出的部分与其他部分分开。
线程标识
#include <pthread.h>
int pthread_equal(pthread_t tidl, pthread_t tid2);
返回值:若相等,返回非0数值;否则,返回0
线程可以通过调用 pthread_self 函数获得自身的线程ID。
#include <pthread.h>
pthread_t pthread_self(void);
返回值:调用线程的线程ID
当线程需要识别以线程ID作为标识的数据结构时,pthread_self 函数可以与 pthread_equal 函数一起使用。
线程创建
新的线程可以通过调用 pthread_create 函数创建。
#include <pthread.h>
int pthread_create(pthread_t *restrict tidp,// 获取线程ID
const pthread_attr_t *restrict attr,