多处理器编程和多核编程有什么区别?最好在python中展示如何编写用于多道程序设计和多核编程的小程序的例子
Gly*_*yph 96
没有"多处理器"或"多核"编程这样的东西."多处理器"和"多核" 计算机之间的区别可能与您作为应用程序员无关; 它与内核如何共享内存访问权限的细微差别有关.
为了利用多核(或多处理器)计算机,您需要一个以可以并行运行的方式编写的程序,以及一个允许程序实际在多个核上并行执行的运行时(和操作系统,虽然您可以在PC上运行的任何操作系统都可以执行此操作.这实际上是并行编程,尽管并行编程有不同的方法.与Python相关的是多处理和多线程.
在C,C++,Java和C#等语言中,您可以通过执行多个线程来编写并行程序.CPython和PyPy运行时的全局解释器锁定排除了此选项; 但仅适用于那些运行时.(在我个人看来,多线程是危险和棘手的,Python通常会鼓励你不要将它视为获得性能优势的一种方式.)
如果你想编写一个可以在Python中运行多个核心的并行程序,你有几个不同的选择:
threading模块编写多线程程序并在IronPython或Jython运行时中运行它.processing模块(现在包含在Python 2.6中作为multiprocessing模块),一次在多个进程中运行您的代码.subprocess模块运行多个python解释器并在它们之间进行通信.无论您选择哪种选项,您都需要了解如何将您的程序正在进行的工作拆分为有意义的分块.由于我不确定您正在考虑编写什么类型的程序,因此很难提供有用的示例.
您实际上可以编写将使用多个处理器的程序.由于GIL锁定,您无法使用线程执行此操作,但您可以使用不同的进程执行此操作.或者:
您可以阅读有关 python 中的多线程和一般线程的信息
Python 中的多线程: http://www.devshed.com/c/a/Python/Basic-Threading-in-Python/