充分利用多核及分布式提升日志解析的性能

更新日期: 2018-02-07 阅读次数: 1389 分类: Python

在一个四核的机器上使用 python 运行以下代码

    while True:
        pass

会发现只有一个核使用率是 100%, 其他三个核则没事可干。

如果使用多线程呢?

由于 CPython (我们平时使用的 Python) 和 PyPy 使用了GIL (Global Interpreter Lock) 导致同一时刻只有一个线程的代码能够被执行,所以实际上是串行执行的,而不是并行。

解决方式通常有以下几种:

  • 使用 threading 模块来写多线程程序,但是在 IronPython 或者 Jython 下运行。
  • 使用 Python 2.6 之后所带的 multiprocessing 模块,使用多进程模型

参考

Multi-Core and Distributed Programming in Python

http://www.praetorian.com/blog/multi-core-and-distributed-programming-in-python

爱评论不评论

近期节日

2018年09月22日 世界无车日
2018年09月23日 秋分
2018年09月23日 国际聋人节
2018年09月24日 中秋节
2018年09月27日 世界旅游日
2018年10月01日 国庆节
2018年10月04日 世界动物日
2018年10月08日 寒露
2018年10月09日 世界邮政日
2018年10月10日 辛亥革命纪念日
2018年10月13日 中国少年先锋队诞辰日
2018年10月14日 世界标准日
查看更多节日