线程属性
线程是一个可调度的实体。
它只具有那些确保其独立控制流所需的属性。 这包括以下属性:
- 堆栈
- 调度属性(比如策略或优先级)
- 暂挂信号和阻塞信号的集合
- 一些特定于线程的数据
特定于线程的数据的一个例子是 errno 错误指示符。 在多线程系统中,errno 不再是一个全局变量,而通常是一个返回特定于线程的 errno 值的子例程。 其他某些系统可能会提供别的 errno 实现。
不能将进程中的线程看作是一组进程。 因为所有的线程共享同一地址空间。 这意味着两个线程中具有相同值的两个指针引用的是相同的数据。 同样,如果任何的线程更改了共享系统资源中的某个资源,那么进程中的所有线程都将受到影响。 例如,如果某个线程关闭了一个文件,那么对于所有的线程该文件都将关闭。