CPython——WIKIPEDIA

CPython

Cpython是用C语言实现的Python解释器。作为官方实现,它是最广泛使用的Python解释器。除了CPython以外,它是最广泛使用的Python解释器。

除了CPython以外,还有用Java实现JPython,用.NET实现IronPython,使Python方便地和Java程序、.NET程序集成。

另外还有一些实验性的Python解释器比如PyPy。

 CPython是使用字节码的解释器,任何程序源代码在执行之前先要编译成字节码。它还有和几种其它语言(包括C语言)交互的外部函数接口。

支持的平台

类Unix

* AIX

* BSD
* Darwin
* FreeBSD
* HP-UX
* IRIX 5以及更高版本
* 九号项目
* Mac OS X
* NetBSD
* Linux
* OpenBSD
* Solaris
* Tru64
*其它Unix

桌面操作系统

* AROS
* AtheOS
* BeOS
* Windows
* Windows NT
* OS/2
* RISC OS

特殊的和嵌入式

* GP2X
* iPodLinux
* Nintendo DS
* Nintendo Gamecube
* Symbian OS Series60
* Nokia 770 Internet Tablet
* Nokia N800
* Nokia N810
* Palm OS
* PlayStation 2
* PlayStation 3(Linux)
* Psion
* QNX
* Sharp Zaurus
* Xbox/XBMC
* VxWorks
* Openmoko

大型机和其它

* OS/390
* VMS
* z/OS

曾经支持的平台

PEP 11列出了CPython停止支持的平台。

  • DOS(2.0开始停止支持)
  • IRIX 4(2.3开始停止支持)
  • Mac OS 9(2.4开始停止支持)
  • MINIX(2.3开始停止支持)

非官方的移植

这些版本没有进入Python软件基金会的官方版本,这些版本包含了为特定平台提供的模块,如为PSP提供的图像和声音API以及为S60提供的SMS和照相机API。

  • Amiga [2]
  • AS/400 [3]
  • DOS平台使用的DJGPP [4]
  • PSP [5]
  • Symbian [6]
  • Windows CE/Pocket PC [7]

并发问题

多处理器的计算机上使用CPython的主要问题来自CPython的全局解释器锁(Global Interpreter Lock,GIL),它使得CPython不能进行并发编程。

[3]要做到并发编程,就必须为每一个线程运行一个解释器。

如果这样的话,它们之间的通讯就非常困难。

所以社区内一直在讨论是否要从CPython中去除GIL。[4]

注释

Martelli, Alex. Python in a Nutshell 2nd edition. O'Reilly. 2006: 5–7. ISBN 0-596-10046-9.

参考

Release 3.7.1. Python Software Foundation. [2018-10-20].
^ Release v2.7.15. Python Software Foundation. [2018-05-27].
Python/C API Reference Manual: Thread State and the Global Interpreter Lock 互联网档案馆的存档,存档日期2008-09-14.
Python Library and Extension FAQ: Can't we get rid of the Global Interpreter Lock?

 


  转载自:WIKIPEDIA——CPython

posted @ 2020-04-15 15:25  厸清扬  阅读(849)  评论(0编辑  收藏  举报