2017-04-17 106 views

回答

1

两个符号存在于共享库的零初始化段:

% nm /usr/lib/x86_64-linux-gnu/libpython2.7_d.so|egrep '(interp_head|_PyThreadState_Current)' 
000000000062a230 b interp_head 
000000000062a208 B _PyThreadState_Current 

interp_head是一个静态变量 - 没有外部链接的变量 - 和外面是不可见该模块。 _PyThreadState_Current有外部链接,以及使用所述共享库是将程序可见:

% objdump -TC /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 | \ 
    egrep 'interp_head|_PyThreadState_Current' 
000000000056d3c0 g DO .bss 0000000000000008 Base  _PyThreadState_Current 

(仅_PyThreadState_Current在外部符号表中列出)。


每个进程都有一组单独的全局变量;这些不是在Python进程中共享的。