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

更新日期: 2018-02-07 阅读次数: 956 分类: 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年07月23日 大暑
2018年07月30日 非洲妇女日
2018年08月01日 八一建军节
2018年08月06日 国际电影节
2018年08月07日 立秋
2018年08月15日 日本投降日
2018年08月17日 七夕
2018年08月23日 处暑
2018年08月25日 中元节
2018年08月26日 火人节
2018年09月03日 抗日胜利纪念日
2018年09月08日 白露
查看更多节日