在使用python的`future`模块中的`ThreadPoolExecutor`时,是否保证了数据安全?

问题描述 投票:0回答:2

我正在寻找有关此问题的概念性答案。我想知道是否在python中使用ThreadPool执行并发任务,保证数据没有损坏,我的意思是多个线程不会同时访问关键数据

如果是,此ThreadPoolExecutor在内部如何工作以确保一次仅由一个线程访问关键数据

python
2个回答
1
投票

线程池不保证共享数据不会损坏。线程可以在任何字节代码执行边界处交换,并且损坏始终是一种风险。共享数据应受到锁,条件变量和事件等同步资源的保护。参见threading module docs


0
投票

如果是这样,此ThreadPoolExecutor如何在内部工作以确保一次只能由一个线程访问关键数据?

不是,那是你的工作。

map之类的高级方法将使用安全的工作队列,并且不会在线程之间共享工作项,但是如果您拥有其他可以共享的资源,则池不知道或不在乎,这是您的问题开发人员。

© www.soinside.com 2019 - 2024. All rights reserved.