UNIX环境编程学习笔记(26)——多线程编程(一):创建和终止线程
lienhua34 2014-11-08 在 进程控制三部曲 中我们学习了进程的创建、终止以及获取终止状态等的进程控制原语。线程的控制与进程的控制有相似之处,在表 1中我们列出了进程和线程相对应的控制原语。 表 1: 进程原语和线程原语的比较 进程原语 线程原语 描述 fork pthread_create 创建新的控制流 exit pthread_exit 从现有的控制流中退出 waitpid pthread_join 从控制流中得到退出状态 atexit pthread_cleanup_push 注册在退出控制流时调用的函数 getpid pthread_self 获取控制流的 ID abort pthread_cancel 请求控制流的非正常退出 1 线程 每个线程都有一个线程 ID,线程只在它所属的进程环境中有效。线程ID 使用pthread_t 表示。可以通过调用pthread_self 函数获取线程自身的线程 ID, #include <pthread.h> pthread_t pthread_self(void); 返回值:调用线程的线程ID 线程 ID 不一定是一个非负整数,也有可能是一个结构体。所以,要对比两个线程是否相同,必须使用pthread_equal 函数来进行, #include <pthread.h> int pthread_equal(pthread