【问题标题】:Passing the pointer to the local variable v in thread t1 to thread t2将指向线程 t1 中的局部变量 v 的指针传递给线程 t2
【发布时间】:2022-07-25 19:31:22
【问题描述】:

假设程序员错误地创建了一个自动(又名本地) 一个线程 t1 中的变量 v 并将其传递给另一个线程 t2。可能吗 对于 t1 对 v 以外的某个变量的写入,v 的状态将更改为 t2观察到的?

请给我一个完整解释的答案。

【问题讨论】:

标签: operating-system


【解决方案1】:

我想出了答案。

是的,如果新变量写入与 v 指向相同内存地址的变量上。 当程序员将 v 传递给 t2 时,他将 v 作为引用传递。所以这意味着 v 仍然在 t1 的 Stack 中。位于 t1 中的 v 的任何更改都会直接影响 t2 中 v 的值,因为它们都引用了相同的内存地址

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多