回答
如果您在栈上声明一个变量并将其地址传递给另一个线程,那么您基本上共享一个栈位置。这就是论文所描述的吗?
或者是提到操作系统支持的文件,使得使用相同堆栈的线程保持EIP/SP等?看起来像是一个等待我发生的问题。我想你可以这样做,以确保当你知道你的代码的约束时,每个线程都不会浪费堆栈空间,但看起来像是一种矫枉过正。
它没有详细说明任何内容,并且我个人认为堆栈应该是每个线程都是私有的,但是有没有人在实践中做到这一点?我的意思是共享堆栈位置? – Achilles 2010-06-02 16:05:25
进程中的所有线程都可以访问整个进程的虚拟地址空间 - 因此没有位置是真正的“每栈”私有的。 系统通过在不同位置存储每个堆栈帧的EIP/SP和局部变量(堆栈空间在创建线程时初始化)并提供像TLS(线程本地存储)这样的工具来尝试模拟每个线程的私有空间,但无论如何,它最终只是一个幻想。一个巧妙制作的程序当然可以使用相同的堆栈位置来存储共享数据。在Windows中,您可以在线程创建时指定堆栈大小。 – Alienfluid 2010-06-04 00:10:19
- 1. Java线程从共享堆栈阵列读取和写入
- 2. 堆被共享到多个线程吗?
- 3. 线程堆和堆栈
- 4. 配置boost ::线程堆栈大小
- 5. 递归并行线程产卵 - 堆栈位置
- 6. 是否可以在Windows中决定线程的堆栈位置?
- 7. 从堆栈跟踪,多线程他指出错误的位置
- 8. 确定线程的堆栈大小和位置
- 9. 绘制堆栈和线程程序堆
- 10. AngularJS $位置历史堆栈
- 11. 为相对位置/堆栈
- 12. 堆栈内存位置
- 13. openCL堆栈位置(递归)
- 14. 通过发布者和消费者线程之间的堆栈共享数据
- 15. 线程的奇怪堆栈
- 16. 线程堆栈指针
- 17. 线程堆栈错误
- 18. 线程堆栈分配
- 19. 在堆栈或堆内存中创建线程对象的位置?
- 20. PageContext线程共享
- 21. 线程堆栈和进程堆栈有什么区别
- 22. 线程访问/更新共享内存位置
- 23. 确实谷歌应用程序引擎实例共享堆和堆栈?
- 24. TFS 2010内置,放置位置本地不共享共享
- 25. 共享对象的位置
- 26. 使用asmack共享位置
- 27. 位置“包含我的应用程序的共享库的符号版本目录”(NDK堆栈)
- 28. Python中的调用堆栈是在线程之间共享还是在多线程和多处理中的进程之间共享?
- 29. 多线程共享变量
- 30. 共享对象和线程
你提到的论文是......? – 2010-06-01 13:19:30
如果论文没有回答这个问题,我会说这不是一篇很好的论文。 – danben 2010-06-01 13:21:48
它的内容如下:“我们维护通过堆栈指针之外的寄存器访问堆栈位置的集合,但这是实现的人为因素,而不是故意计划支持在线程之间共享堆栈位置的程序。” 本文标题为:“橡皮擦:多线程程序的动态数据竞赛探测器” 我明白这个语句的内容,但我想知道是否可以共享堆栈位置? – Achilles 2010-06-01 13:30:24