当我们运行一个线程应用程序时,这看起来很容易。 CPython解释器一一运行字节码指令并立即执行它。但是,如果我们从第一个线程开始另一个线程,它是否有自己的消耗字节码的循环,并且它们共享一些用于同步的公共内存(GIL等),或者以某种方式从第一个(主)线程委托指令中循环第二个?我无法弄清楚第二个线程如何获取指令,如果需要不断解释它需要执行什么。 我知道它不会因为GIL而并行运行,但是有关解释指令的问题,它是否在两个线程中都发生?
import threading
def thread_function(value):
print(value)
if __name__ == "__main__":
x = threading.Thread(target=thread_function,args=(1,))
x.start()
将在哪个线程print(value)
(主线程或子线程)中进行解释?