Как заставить python запускать несколько процессов или программ

#python #multithreading

Вопрос:

Вот в чем моя проблема. У меня есть программа, которая обрабатывает список из 2 000 000 записей. Это Питон, так что он медлительный. Мне было интересно, могу ли я заставить свою программу обработки запускать несколько экземпляров самой себя или заставить «основную» программу запускать множество программ обработки для работы в моем списке. До сих пор, когда я играю с потоками, скорость такая же, как если бы я просто запустил один экземпляр. Можете ли вы помочь или дать совет, как с этим справиться? Вот квазикод для этого:

 my_list = [...3,000,000 entries...]

def processList(start, finish):
    for pos, item in enumerate(my_list):
        if pos < finish and pos >= start:
            process_protocol(item)

def main():
    processList(0,100000)
    processList(100000, 200000)
    processList(200000, 300000)
    etc...
 

Проблема в том, что вызовы processList из main() не будут запускаться одновременно; и если я буду передавать их, это все равно будет происходить медленно. Так как же еще я могу работать со своим списком по частям, чтобы ускорить это? Могу ли я запустить экземпляры этой программы в нескольких окнах терминала и моя основная() программа запустит эти новые окна терминала? Пожалуйста, помогите.

Комментарии:

1. вы пробовали multiprocessing либ?

2. Также вы можете попробовать Ray lib