Haskell与Python线程模型

时间:2011-07-05 18:22:09

标签: python haskell multicore

也许那里的人有正确的兴趣,知道如何回答这个问题。基本上问题是:Python中的multiprocessing模块和Haskell中的并行性之间有什么区别。例如:在Python中创建的线程是否映射到OS线程?如果是这样,如果有多个线程而不是内核呢?它们是否多路复用到OS线程中?谁安排这些线程?感谢所有信息:非常感谢文档/见解。

2 个答案:

答案 0 :(得分:7)

与Python相反(参见Eli's answer),Haskell的线程模型完全不同。并发性(处理程序不同方面的多个线程)和并行性(多个线程只是为了加速计算)之间存在差异。两者都由Haskell RTS管理的轻量级线程处理。在第二种情况下,可以使用诸如pseqpar之类的原语来提示运行时在另一个线程中进行计算,如果这有利的话。运行时自动决定这一点。

答案 1 :(得分:6)

Python multiprocessing模块与线程无关。它尝试使用下面的进程提供类似于threading的API( 公开线程)。

Python线程被映射到操作系统线程,如果你创建的线程多于核心,那么就像在C(pthreads,Win API线程等)中那样完成同样的事情 - 操作系统玩杂耍核心之间的线程。

网上有很多关于Python线程的信息,只有谷歌。