python 虚拟机框架-运行时环境初探

在Python中,关于线程状态信息的抽象是通过PyThreadState对象来实现的,一个线程将拥有一个PyThrasdState对象。所以从另一种意义来说,这个PyThreadState对象也可以看成是对线程本身的抽象。但实际上,这两者有很大的区别,PyThreadStaye并非是对线程本身的模拟,因为Python中的线程任然使用操作系统的原生线程。PyThreadState仅仅是对线程状态的抽象。

对于进程这个抽象概念,Python以PyInterpreterState对象来实现。

image

在PyThreadState对象中,我看到了熟悉的PyFrameObject(_frame)对象。也就是说,在每个PyThreadState对象中,会维护一个栈帧的列表,以与PyThreadState对象的线程中的函数调用机制对应。在Win32上,情形也是一样的,每一个线程都会有一个函数调用堆栈。

image

posted @ 2022-11-04 17:54  一枚码农  阅读(39)  评论(0编辑  收藏  举报