TSD能被其他线程访问?

方紫涵 2013-12-31 05:29:00
APUE上的话
“线程没有办法阻止其它线程访问它的数据,线程私有数据也不例外” 怎么理解啊?那有啥办法访问其他线程的私有数据啊?

进程中的所有线程都可以访问进程的整个地址空间,除非使用寄存器(一个线程真正拥有的唯一私有存储是处理器寄存器),线程没有办法阻止其它线程访问它的数据,线程私有数据也不例外,但是管理线程私有数据的函数可以提高线程间的数据独立性。


happy 2014 new year to everyone
...全文
162 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
方紫涵 2014-02-18
  • 打赏
  • 举报
回复
引用 5 楼 feiyinzilgd 的回复:
[quote=引用 4 楼 xwhbwas2008 的回复:] [quote=引用 3 楼 feiyinzilgd 的回复:] 这句话你哪部分不理解?我给你解释下。
"线程没有办法阻止其它线程访问它的数据,线程私有数据也不例外" TSD设立的初衷不就是禁止其他线程访问自己的TSD呢 ?但是看这个话的意思是刚好相反呢[/quote] 没有办法阻止。我的理解是,使用TSD方式只是保证一键多值而已。通过pthread_getxxx方式不同的线程获取的值不一样。其实TSD的实现的时候,数据存储位置还是在进程空间内,同样可以通过地址访问到。[/quote] got it thanks
方紫涵 2014-02-17
  • 打赏
  • 举报
回复
谁回复下?不然分给谁阿 ?
谭海燕 2014-02-17
  • 打赏
  • 举报
回复
引用 4 楼 xwhbwas2008 的回复:
[quote=引用 3 楼 feiyinzilgd 的回复:] 这句话你哪部分不理解?我给你解释下。
"线程没有办法阻止其它线程访问它的数据,线程私有数据也不例外" TSD设立的初衷不就是禁止其他线程访问自己的TSD呢 ?但是看这个话的意思是刚好相反呢[/quote] 没有办法阻止。我的理解是,使用TSD方式只是保证一键多值而已。通过pthread_getxxx方式不同的线程获取的值不一样。其实TSD的实现的时候,数据存储位置还是在进程空间内,同样可以通过地址访问到。
方紫涵 2014-02-17
  • 打赏
  • 举报
回复
引用 3 楼 feiyinzilgd 的回复:
这句话你哪部分不理解?我给你解释下。
"线程没有办法阻止其它线程访问它的数据,线程私有数据也不例外" TSD设立的初衷不就是禁止其他线程访问自己的TSD呢 ?但是看这个话的意思是刚好相反呢
谭海燕 2014-02-17
  • 打赏
  • 举报
回复
这句话你哪部分不理解?我给你解释下。
方紫涵 2014-01-02
  • 打赏
  • 举报
回复
把这个话copy出来 “进程中的所有线程都可以访问进程的整个地址空间,除非使用寄存器(一个线程真正拥有的唯一私有存储是处理器寄存器),线程没有办法阻止其它线程访问它的数据,线程私有数据也不例外,但是管理线程私有数据的函数可以提高线程间的数据独立性。”

23,124

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧