Используя Python 2.7, я создал образец словаря и несколько функций для подстановки этого словаря и итерации по подмножествам ...
from itertools import islice
from multiprocessing import Process
from collections import OrderedDict
global pair_dict
pair_dict = {
1: 'one',
2: 'two',
3: 'three',
4: 'four',
5: 'five',
6: 'six',
7: 'seven',
8: 'eight'
}
global test_printer
def test_printer(start_chunk, end_chunk):
fin_dict = OrderedDict(sorted(pair_dict.items()))
sub_dict = dict(fin_dict.items()[start_chunk:end_chunk])
for key, value in sub_dict.iteritems():
print key, value
print '-' * 50
def set_chunk_start_end_points():
# Takes the dictionary and chunks for parallel execution.
for i in range(2, 9, 2):
start_chunk = i - 2
end_chunk = i
test_printer(start_chunk, end_chunk)
#first = Process(target=test_printer, args=(start_chunk, end_chunk)).start()
set_chunk_start_end_points()
... Я видел примеры многопроцессорное использование, но ни один из них не соответствует тому, что я пытаюсь сделать. Пример кода создает четыре словаря подмножеств и выполняет их последовательно. Я ищу, чтобы они работали параллельно.
Если вы закомментируете строку test_printer(start_chunk, end_chunk)
и раскомментируете нижнюю строку, я ожидаю увидеть тот же вывод, просто Python использовал несколько потоков сделать это. Однако сейчас ничего не происходит.
Что я делаю не так?
Спасибо