多线程性能问题

时间:2011-07-01 11:47:43

标签: python multithreading

  

可能重复:   Multithreading performance overhead

我有一段代码在多线程上运行速度较慢,而且在使用一个线程时速度更快。

从一个帖子输出

Batch 0 finished in 0.0970576110595
Batch 1 finished in 0.712632355587
Batch 2 finished in 2.16707853982
Batch 3 finished in 5.13259954359
Batch 4 finished in 9.54205263734

Total running time is approx 17second

使用多线程输出

Thread 0 finished in 60.4911733611
Thread 1 finished in 62.5297083217
Thread 2 finished in 65.5614617838
Thread 3 finished in 66.8199233683
Thread 4 finished in 66.8426577103

Total running time is 66 second.

在每个过程中做的是采用100行文本,拆分为令牌,删除停用词并使用某种算法从中生成一些模式,是否有人有任何经验或方法来帮助我找出问题所在?

1 个答案:

答案 0 :(得分:0)

@ mac的答案可能涵盖了原因,但我们需要您的一些代码来提供更多帮助。你可能想尝试的东西,使用multiprocessing而不是线程,但是你有数据访问问题......

在python中进行线程处理对于非阻塞IO只有you only have one active thread per python process

Multiprocessing对于使用额外的核心很有用,但是你开始不得不担心锁定和竞争条件以及其他所有内容。