【发布时间】:2019-05-06 18:16:35
【问题描述】:
我知道使用传统的多处理库我可以声明一个值并在进程之间共享状态。
当使用较新的 concurrent.futures 库时,如何在我的进程之间共享状态?
import concurrent.futures
def get_user_object(batch):
# do some work
counter = counter + 1
print(counter)
def do_multithreading(batches):
with concurrent.futures.ThreadPoolExecutor(max_workers=25) as executor:
threadingResult = executor.map(get_user_object, batches)
def run():
data_pools = get_data()
start = time.time()
with concurrent.futures.ProcessPoolExecutor(max_workers=PROCESSES) as executor:
processResult = executor.map(do_multithreading, data_pools)
end = time.time()
print("TIME TAKEN:", end - start)
if __name__ == '__main__':
run()
我想保持这个计数器的同步值。
在之前的库中,我可能使用过multiprocessing.Value 和Lock。
【问题讨论】:
-
这与新的 concurrent.fututres 库特别相关
标签: python python-3.x python-multiprocessing python-multithreading