|
1 / 1 / 3
Регистрация: 10.03.2018
Сообщений: 150
|
|
Потоки, процессы и асинхронное программирование16.12.2018, 19:32. Показов 2303. Ответов 9
Метки нет (Все метки)
Добрый вечер.
Почитал документацию и по моему я только еще больше запутался. Есть модуль Threadind - который подразумевает разделение программы на потоки. Т.е. задачи выполняются в параллельно друг другу. Перечитав кучу статей, понял что GIL не дает потокам выполнятся параллельно друг другу. вопрос - зачем нужен Threading если потоки все равно выполняются последовательно, т.е. следующий поток, прежде чем начать свою работу, ждет окончания работы текущего потока. Может быть я что то не так понял. В таком случае объясните пожалуйста для каких задач нужен модуль Threading? Есть модуль multiprocessing - который для каждой задачи создает собственный процесс с выделением области в памяти. И каждая задача оперирует исключительно своими переменными. Для каких задач лучше использовать этот модуль? Есть модуль asyncio - который создает очередь из задач и при простое(ожидании) текущей задачи переключается на выполнение следующей задачи, а потом снова возвращается к выполнению текущей задачи. В интернете пишут, что данный модуль необходим для того, что бы на уровне программы устанавливать очередность выполнение задач. Где лучше использовать этот модуль?
0
|
|
| 16.12.2018, 19:32 | |
|
Ответы с готовыми решениями:
9
Паралельное программирование. Потоки и процессы |
|
|
|||
| 20.12.2018, 13:46 | |||
![]() Нужды могут быть различные. Например, сделать "отзывчивый" gui, пока выполняется некий долгий процесс (не в программном смысле). Применение 2 - когда потоки работают с внешними ресурсами. Они медленные, их приходится ждать, всё равно наша программа будет простаивать - так хоть запустим их параллельно, чтобы ждали одновременно.
0
|
|||
|
1 / 1 / 3
Регистрация: 10.03.2018
Сообщений: 150
|
|
| 09.01.2019, 13:36 [ТС] | |
|
Если можно, то немного уточнений.
Задача заключается в следующем - я хочу написать web приложение на Pyhton, со следующей логикой: Клиент отправляет в web приложение данные. Web приложение получает данные и делает выборку из базы данных или из данных загруженных в память. На основе выборки web приложение отправляет запрос на сторонний ресурс, получает ответ, обрабатывает его и в итоге отправляет клиенту результат своей работы. Что лучше использовать для такой задачи? Threadind multiprocessing asyncio Какая библиотека будет потреблять больше/меньше ресурсов? и каких? Какая библиотека сможет обработать больше/меньше всего запросов, за одинаковый период времени?
0
|
|
|
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
|
|
| 09.01.2019, 14:06 | |
|
aiohttp в тренде, лично я голосую за tornado
https://github.com/tornadoweb/... ster/demos
0
|
|
|
1 / 1 / 3
Регистрация: 10.03.2018
Сообщений: 150
|
|
| 09.01.2019, 15:18 [ТС] | |
|
0
|
|
|
|
|
| 09.01.2019, 15:58 | |
|
kmvcf, как я уже отметил, обычно для работы с внешними ресурсами используют threading или asyncio. Между ними уже сложнее выбрать, так что я лучше воздержусь от совета.
Но пока для вашей задачи я вообще не увидел, где там нужна многопоточность в каком бы то ни было виде. Разве что будете писать свой веб-сервер, но это вряд ли. А так - в рамках одного запроса многопоточность пока не просматривается, а одновременно рулить запросами будет программа-вебсервер.
0
|
|
|
1 / 1 / 3
Регистрация: 10.03.2018
Сообщений: 150
|
|
| 09.01.2019, 16:22 [ТС] | |
|
0
|
|
|
1 / 1 / 3
Регистрация: 10.03.2018
Сообщений: 150
|
||
| 09.01.2019, 16:35 [ТС] | ||
|
если вебсервера нет, то нужно писать свой вебсервер. В таком случае как будет происходить взаимодействие: Сервер принял 100 запросов. Отправил данные 1 запроса моему приложению. Мое приложение обрабатывает данные. В этот момент сервер отправляет моему приложению 2 запрос. Но ведь мое приложение работает в один поток и он уже занят, разве не так?
0
|
||
|
|
|||
| 09.01.2019, 16:42 | |||
Сообщение было отмечено kmvcf как решение
Решение
1
|
|||
| 09.01.2019, 16:42 | |
|
Помогаю со студенческими работами здесь
10
Потоки: асинхронное обновление объектов на карте Потоки или асинхронное выполнение операции скачивания из Интернета Асинхронное программирование Асинхронное программирование Асинхронное программирование Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|