gpt4 book ai didi

python - python中的调用堆栈是否分别在多线程和多处理中的线程或进程之间共享?

转载 作者:行者123 更新时间:2023-12-01 02:52:38 25 4
gpt4 key购买 nike

我正在用 python 编写代码,其中包括一些多处理多线程

我的问题是:线程或进程共享相同的调用堆栈吗?

我正在使用 inspect 模块,我担心它会在 inspect.stack() 中返回错误的值。

最佳答案

不,他们没有,子进程作为单独的实体被 fork /生成,因此每个进程都作为一个全新的 Python 实例有效地启动。

Python 通过透明地腌制/取消腌制要在进程之间传输的数据来隐藏其中的一些肮脏之处,但它们都有自己的堆栈、自己的 GIL 以及与之相关的所有内容。

多线程是一个不同的故事 - 线程确实共享底层堆栈,但 Python 将它们划分为每个线程都有自己的堆栈,因此 inspect.stack() 结果可能会令人困惑/不可预测..

关于python - python中的调用堆栈是否分别在多线程和多处理中的线程或进程之间共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44571938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com