线程(thread):
是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
由于同一进程的多个线程共享同一地址空间,因此.Text Segment(代码段)、.Data Segment(数据段,一般全局变量存储在这里)都是共享的,如果定义一个函数,在各线程中都可以调用,如果定义一个全局变量,在各线程中都可以访问到,除此之外,各线程还共享以下进程资源和环境:
1.文件描述符表
2.每种信号的处理方式
3.当前工作目录
4.用户id和组id
5.堆空间
但有些资源是每个线程各有一份的:
1.线程id
2.上下文,包括各种寄存器的值、程序计数器和栈指针
3.栈空间
4.errno变量
5.信号屏蔽字
6.调度优先级
在Linux上线程函数位于libpthread共享库中,因此在编译时要加上-lpthread选项。