积少成多

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

线程可以访进程内存里的所有数据,甚至包括其他线程的堆栈(如果它知道线程的堆栈地址,很少发生),但实际运用中线程也有自己的私有存储空间:

1,栈(尽管并非完全无法被其他线程访问,但一般情况下仍然可以被认为是私有的数据)

2,线程局部存储解(thread local storage)。线程局部存储是某些os为线程单独提供的私有空间,但通常只具有很有限的容量。

3,register(包括pc寄存器),寄存器是执行流的级别数据,为线程私有。

=

从c程序员的绝度来看,数据在线程之间是否私有如下:

线程私有      线程之间共享(进程所有)

局部变量      全局变量

函数的参数      堆上的数据

TLS数据       函数里的静态

          程序代码,任何线程都有权利读取并执行任何代码

          打开的文件,A线程打开的文件可以由B线程读写

========

线程调度总,线程通常拥有知道三种状态,分别是:

运行:线程正在执行

就绪:此时线程可以立即执行,但是cpu以及被占用

等待:此时线程等在某一事件发生,无法执行。

posted on 2016-07-29 20:27  x7b5g  阅读(171)  评论(0编辑  收藏  举报