У меня возникла странная проблема при использовании библиотеки многопроцессорности python.
Мой код приведен ниже: я создаю процесс для каждого кортежа "символ, дата". Затем я совмещаю результаты.
Я ожидаю, что когда процесс выполнит вычисления для кортежа "symbol, date", он должен освободить свою память? по-видимому, это не так. Я вижу десятки процессов (хотя я установил пул процессов размером 7), которые были приостановлены¹ в машине. Они не потребляют процессор, и они не освобождают память.
Как я могу позволить процессу освободить свою память после того, как он выполнил свои вычисления?
Спасибо!
¹ "приостановлено" Я имею в виду, что их статус в команде ps показан как "S +"
def do_one_symbol( symbol, all_date_strings ):
pool = Pool(processes=7)
results = [];
for date in all_date_strings:
res = pool.apply_async(work, [symbol, date])
results.append(res);
gg = mm = ss = 0;
for res in results:
g, m, s = res.get()
gg += g;
mm += m;
ss += s;