Python的C语言扩展 Cython
fmms
13年前
C-Python: 或者CPython,指C实现的Python <span class="t_tag" href="http://tech.techweb.com.cn/tag.php?name=%D0%E9%C4%E2%BB%FA">虚拟机</span>的基础API。最通用的Python就是是基于C实现的,它的底层API称为C-Python API,所有Python代码的最终变成这些API以及数据结构的调用,才有了Python世界的精彩; <br /> Cython:准确说Cython是单独的一门语言,专门用来写在Python里面import用的扩展库。实际上Cython的语法基本上跟Python一致,而Cython有专门的“编译器”先将 Cython代码转变成C(自动加入了一大堆的C-Python API),然后使用C编译器编译出最终的Python可调用的模块。 <br /> GIL:Global Interpreter Lock,是Python虚拟机的多线程机制的核心机制,翻译为:全局解释器锁。其实Python线程是 <span class="t_tag" href="http://tech.techweb.com.cn/tag.php?name=%B2%D9%D7%F7%CF%B5%CD%B3">操作系统</span>级别的线程,在不同平台有不同的底层实现(如win下就用win32_thread, posix下就用pthread等),Python解释器为了使所有对象的操作是线程安全的,使用了一个全局锁(GIL)来同步所有的线程,所以造成“一个时刻只有一个Python线程运行”的伪线程假象。GIL是个颗粒度很大的锁,它的实现跟性能问题多年来也引起过争议,但到今天它还是经受起了考验,即使它让Python在多核平台下CPU得不到最大发挥。 <br /> <br /> <p><strong>项目主页:</strong><a href="http://www.open-open.com/lib/view/home/1325855145890" target="_blank">http://www.open-open.com/lib/view/home/1325855145890</a></p>