我基本上是在尝试编写 mapreduce 的多核版本,只是为了看看我是否理解了这个概念。并且还想学习python中的线程。
我可以说两块文本字符串。
我如何使用多线程同时处理它们(比如说将它们标记为单词)。我以为我理解了文档,但这是一部分(多线程程序),如果它必须高效,就必须非常小心。有什么建议么?
我基本上是在尝试编写 mapreduce 的多核版本,只是为了看看我是否理解了这个概念。并且还想学习python中的线程。
我可以说两块文本字符串。
我如何使用多线程同时处理它们(比如说将它们标记为单词)。我以为我理解了文档,但这是一部分(多线程程序),如果它必须高效,就必须非常小心。有什么建议么?
我建议您尝试使用该multiprocessing
模块,并使用它的map()
方法。这将让您有效地使用多个内核。
由于 Python 解释器中的锁定耗时,Python 线程的效率不如预期的那么高。有一个threading
模块,但您可能最好使用该multiprocessing
模块来解决 map/reduce 类型的问题。
此外,如果您想确保您了解 map/reduce,为什么不使用真正的 map/reduce 系统呢?Hadoop 是一个可用的免费软件 map/reduce 系统,可以将 Python 与 Hadoop 一起使用:
http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/