multithreading - 线程共享局部变量吗?

标签 multithreading operating-system

我正在阅读Silberschatz第7版的《操作系统概念》,它说同一进程的线程共享代码部分,数据部分和其他操作系统。资源,但有单独的堆栈和寄存器集。但是,我正在处理的问题集指出线程共享局部变量,但是局部变量不存储在堆栈中,因此各个线程应该有自己的副本吗?

最佳答案

Threads通常共享以下内容。

  • 数据段(全局变量,静态数据)
  • 地址空间。
  • 代码段。
  • I/O,如果文件已打开,则所有线程均可对其进行读写。
  • 父进程的ID。

  • 但是threads维护自己的stack副本,并且局部变量存储在堆栈中,因此,是的,每个线程都应该拥有自己的局部变量副本。

    可能是它使用了一个错误的术语,或者是它特定于问题集。

    关于multithreading - 线程共享局部变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41632073/

    相关文章:

    objective-c - 单元测试基于线程的代码?强制竞争条件

    node.js - 让node.js程序阻止系统进入休眠模式

    C++ 多线程 - 如何处理对共享变量的写入

    multithreading - 多线程程序的核心转储

    concurrency - Hoare Monitor 使用信号量实现?

    c++ - 内存分配是系统调用吗?

    linux - 根据端口识别远程操作系统

    c++ - 锁定多个线程

    Python 线程和 GIL

    java - map 对象同步