LINUX.ORG.RU

История изменений

Исправление Shadow, (текущая версия) :

Списки большие, обрабатывать без нескольких потоков очень долго

Для ускорения обработки данных используют numpy, он умеет в параллель обрабатывать отдельно от питона («векторные вычисления»)

Но второй поток получает список2 с первоначальными данными, а не с обработанными в первом потоке.

Безотносительно данного случая, архитектура питона такова, что всё равно все эти «потоки» будут обрабатываться в одном треде процессора, поэтому имеет смысл доразобраться с multiprocessing. На numpy это не очень распространяется, так как это табличный процессор, написанный на C, к которому обращается питон.

Опишите более конкретно тип данных, тип обработки, что хотите получить на выходе. Питон в 90% - это «клей» для готовых компонентов, написанных на более быстрых языках. Потому как по вашему вопросу хочется запустить threading с очередью сообщений и семафорами/событиями и т.п., что может добавить отзывчивости программе, но никак не решить вопрос.

Сейчас первая функция работает в цикле и обрабатывает список поштучно

Подозреваю, что numpy вам хватит с головой: https://www.geeksforgeeks.org/how-to-map-a-function-over-numpy-array/

Исправление Shadow, :

Списки большие, обрабатывать без нескольких потоков очень долго

Для ускорения обработки данных используют numpy, он умеет в параллель обрабатывать отдельно от питона («векторные вычисления»)

Но второй поток получает список2 с первоначальными данными, а не с обработанными в первом потоке.

Безотносительно данного случая, архитектура питона такова, что всё равно все эти «потоки» будут обрабатываться в одном треде процессора, поэтому имеет смысл доразобраться с multiprocessing. На numpy это не очень распространяется, так как это табличный процессор, написанный на C, к которому обращается питон.

Опишите более конкретно тип данных, тип обработки, что хотите получить на выходе. Питон в 90% - это «клей» для готовых компонентов, написанных на более быстрых языках. Потому как по вашему вопросу хочется запустить threading с очередью сообщений и семафорами/событиями и т.п., что может добавить отзывчивости программе, но никак не решить вопрос. Подозреваю, что numpy вам хватит с головой.

Исправление Shadow, :

Списки большие, обрабатывать без нескольких потоков очень долго

Для ускорения обработки данных используют numpy, он умеет в параллель обрабатывать отдельно от питона («векторные вычисления»)

Но второй поток получает список2 с первоначальными данными, а не с обработанными в первом потоке.

Безотносительно данного случая, архитектура питона такова, что всё равно все эти «потоки» будут обрабатываться в одном треде процессора, поэтому имеет смысл доразобраться с multiprocessing. На numpy это не очень распространяется, так как это табличный процессор, написанный на C, к которому обращается питон.

Опишите более конкретно тип данных, тип обработки, что хотите получить на выходе. Питон в 90% - это «клей» для готовых компонентов, написанных на более быстрых языках. Потому как по вашему вопросу хочется запустить threading с очередью сообщений и семафорами, что может добавить отзывчивости программе, но никак не решить вопрос.

Исправление Shadow, :

Списки большие, обрабатывать без нескольких потоков очень долго

Для ускорения обработки данных используют numpy, он умеет в параллель обрабатывать отдельно от питона («векторные вычисления»)

Но второй поток получает список2 с первоначальными данными, а не с обработанными в первом потоке.

Безотносительно данного случая, архитектура питона такова, что всё равно все эти «потоки» будут обрабатываться в одном треде процессора, поэтому имеет смысл доразобраться с multiprocessing. На numpy это не очень распространяется, так как это табличный процессор, написанный на C, к которому обращается питон.

Опишите более конкретно тип данных, тип обработки, что хотите получить на выходе. Питон в 90% - это «клей» для готовых компонентов, написанных на более быстрых языках.

Исходная версия Shadow, :

Списки большие, обрабатывать без нескольких потоков очень долго

Для ускорения обработки данных используют numpy, он умеет в параллель обрабатывать отдельно от питона («векторные вычисления»)

Но второй поток получает список2 с первоначальными данными, а не с обработанными в первом потоке.

Безотносительно данного случая, архитектура питона такова, что вс равно все эти «потоки» будут обрабатываться в одном треде процессора, поэтому имеет смысл доразобраться с multiprocessing. На numpy это не очень распространяется, так как это табличный процессор, написанный на C, к которому обращается питон.