Pythonistas,请帮助将其转换为利用 Python 线程概念

标签 python multithreading parallel-processing

更新:对于任何想知道我最后选择了什么的人 - 我将结果集分为 4 个,并运行同一程序的 4 个实例,每个实例都有一个参数,每个实例指示要处理的结果集。它对我有用。我也考虑PP模块。尽管它有效,但它更喜欢相同的程序。如果这是一个糟糕的实现,请参与!谢谢..

以下是我的程序的作用。没有什么内存密集型的。它是串行加工和镗孔。您能帮我将其转变为更高效、更令人兴奋的流程吗?假设我用 4 个线程以这种方式处理 1000 条记录,我可以让它在 25% 的时间内运行!

我读过一些有关 Python 线程如果操作不当会导致效率低下的文章。就连Python的创造者也这么说。所以我很害怕,当我阅读更多有关他们的内容时,想看看这里的聪明人是否可以引导我走向正确的方向。非常感谢!

def startProcessing(sernum, name):
    '''
    Bunch of statements depending on result,
    will write to database (one update statement)

    Try Catch blocks which upon failing,
    will call this function until the request succeeds.    
    '''

for record in result:
    startProc = startProcessing(str(record[0]), str(record[1]))

最佳答案

由于全局解释器锁,Python 线程无法同时运行;您需要新的流程。查看多处理模块。

(我被指示将此作为答案发布=p。)

关于Pythonistas,请帮助将其转换为利用 Python 线程概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3406654/

相关文章:

parallel-processing - 键的替代哈希表相等性测试

python - 使用 matplotlib 生成许多图形的最有效方法

linux - 如何说服我的同事 linux 内核代码是可重入的?

java - Hibernate 中的 CUD 操作线程安全吗?

java - 清除图表会导致内存泄漏吗?

r - Slurm:使用来自多个节点的核心进行 R 并行化

java - 使用 corePoolSize 而不是 maxPoolSize 的 InvokeAll 方法

python - 为什么Flask本地使用5000端口,部署时使用80端口?

python - aiohttp:如何从 requests.get 检索 aiohttp 服务器中的数据(正文)

python - Tensorflow:子张量的reduce_mean并连接结果