概况总览:
多线程能够尽可能得使用cpu资源。有几个线程就有几个栈,每一个线程就是一个栈。线程包含了进程内执行环境必须的信息,包括标识线程的线程ID,一组寄存器值,栈,调度优先级,策略,信号屏蔽字,error变量以及线程私有数据。
进程内所有的信息对于线程来讲都是共享的,包括执行代码,全局变量,对内存以及文件描述符。
线程标识:
线程ID用pthread_t表示,他并不是一个整数。可以通过pthread_self()函数获取自身的线程ID。区别于进程ID,进程ID用pid_t表示,是一个unsigned int。
包含的头文件:
#include <pthread.h>
关于编译:
g++在链接的时候要增加 -lpthread 选项。
线程创建:
所有程序开始运行的时候,每一个进程都只有一个线程,是通过单线程的方式启动的。
函数原型:
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
参数解释:
threadÿ