Есть ли достойный способ многопоточного процесса Python, в котором я трачу один из своих потоков на загрузку данных и остальные читают и работают с ним асинхронно?
Скажем, у меня есть L (загрузка) и P (процесс), и каждый из них состоит из блока. . Было бы эффективнее создать тред:
Код: Выделить всё
LLLLLLLКод: Выделить всё
PPPPPPPКод: Выделить всё
LP LP LP LPПроблемы с последним подходом заключаются в том, что (а) он потенциально блокирует каждый отдельный процесс за гораздо более медленным L, особенно если компьютер пытается загрузить их все в то же время это означает разделение постоянного ввода-вывода между несколькими потоками и (б) не позволяет мне разделить работу на относительную долю работы. Например, если я в конечном итоге буду делать больше с данными, и обработка каждого фрагмента займет в 3 раза больше времени, чем его загрузка, я бы хотел разместить в 3 раза больше потоков на стороне обработки. (c) Мне никогда не нужны периоды, когда какой-то L не происходит, но теоретически можно представить, что это происходит в параллельной форме LP, когда все работает на P в данный момент время.
Может оказаться, что эти проблемы минимальны, и простота настройки блока LP будет проще с точки зрения читаемости. Но я на самом деле просто не очень хорошо знаю.
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/790 ... sly-python
Мобильная версия