#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