Возник вопрос, можно ли пользоваться словарём, как единой удобной структурой данных в многопоточной программе?
На stackoverflow.com человек задавал подобный вопрос (https://stackoverflow.com/questions/3358770/python-dictionary-is-thread-safe), но ему нужно было одновременно итерироваться по этому словарю и изменять его. Так делать нельзя, это понятно.
Мне же нужно итерироваться по отдельному списку, но при этом читать и дозаполнять словарь (по факту, использовать этот словарь как мини-базу данных). Можно ли так поступать в многопоточной программе?
Примерно так:
#... from multiprocessing.dummy import Pool as ThreadPool super_dict = {} def fun(param): if param in super_dict : ... что-то сделать else: super_dict[param]=0 ... ещё что-то сделать pool = ThreadPool(20) params = ... какие-то исходные данные pool.map(fun, params)