170 похожих чатов

А что, корутины это разве про многопоточность?

34 ответов

4 просмотра

Корутины – это про конкурентное выполнение. Конкурентность != многопоточность.

Ну да. Выполнение асинхронного кода в синхронном стиле

Ivan Tyshchenko
Корутины – это про конкурентное выполнение. Конкур...

То есть вы хотите сказать что если в фоновом потоке происходят вычисления,в главном пользователь колупает в носу то эта система с двумя потоками не многопоточная а конкурентная?.

Alex- Автор вопроса
Anatoliy Kernokus
То есть вы хотите сказать что если в фоновом поток...

Нет. Хотя фактически треды в питоне это инструмент вытесняющей конкурентности, но думаю пока этот момент можно опустить

Alex
Нет. Хотя фактически треды в питоне это инструмент...

Я из мира андроид и мне не очень понятна ваша логика

Alex- Автор вопроса
Anatoliy Kernokus
Я из мира андроид и мне не очень понятна ваша логи...

Я думаю в питоне нет таких концепций которых не было бы в джаве, так что странный комментарий.

Alex
Я думаю в питоне нет таких концепций которых не бы...

Я поэтому и пытаюсь у вас узнать разницу между конкурентностью и многопоточностью.что вы понимаете под первым словом

Alex- Автор вопроса
Anatoliy Kernokus
Я поэтому и пытаюсь у вас узнать разницу между кон...

Конкурентного выполнения работы ты можешь достигнуть не обязательно через "честный" параллелизм на ядрах. https://en.wikipedia.org/wiki/Preemption_(computing)

Anatoliy Kernokus
Я поэтому и пытаюсь у вас узнать разницу между кон...

разница в том что конкурентность это свойство системы, а многопоточность *одна из* ее реализаций.

Anatoliy Kernokus
Я поэтому и пытаюсь у вас узнать разницу между кон...

Краткие сведения о GIL: Одновременно может выполняться один поток. Интерпретатор Python переключается между потоками для достижения конкурентности. GIL применим к CPython (стандартной реализации). Но такие как, например, Jython и IronPython не имеют GIL. GIL делает однопоточные программы быстрыми. Операциям ввода/вывода GIL обычно не мешает. GIL позволяет легко интегрировать непотокобезопасные библиотеки на C, благодаря GIL у нас есть много высокопроизводительных расширений/модулей, написанных на C. Для CPU зависимых задач интерпретатор делает проверку каждые N тиков и переключает потоки. Таким образом один поток не блокирует другие. корутины - потоки между которыми переключает контекст программы в GIL чем и достигается конкурентность просто потоки выполняют задачу без конкурентности в питоне 3 корутины - потоки для asyncio, которые сэкономят времени на выполнении I/O операций

Alex- Автор вопроса
Oleksii Ovdiienko
Краткие сведения о GIL: Одновременно может выполн...

> Одновременно может выполняться один поток. Нет.

Alex
> Одновременно может выполняться один поток. Нет.

> Одновременно может выполняться один поток. чушь собачья

Alex- Автор вопроса
Oleksii Ovdiienko
ок, ты взломал GIL или свой написал?

Например гил отпускается на IO-задачах.

Oleksii Ovdiienko
ок, ты взломал GIL или свой написал?

нет, внезапно те потоки которые не захватывают GIL могут выполняться параллельно (если аппаратура позволяет)

Alex
нет, внезапно те потоки которые не захватывают GIL...

Для этого только надо аффинити вырубать, не?

Alex
нет, внезапно те потоки которые не захватывают GIL...

если бы в питоне GIL разрешал паралельно работать с одным объектом, то получали бы часто race condition

Alex
а при чем тут аффинити?

Притом, что процесс припинен к ядру, то есть ничего реально в параллель на других ядрах не запускается, пока он выставлен

Nikolay Markov
Притом, что процесс припинен к ядру, то есть ничег...

только с чего ты взял что интерпретатор выставляет аффинити по-умолчанию?

Alex- Автор вопроса
Oleksii Ovdiienko
если бы в питоне GIL разрешал паралельно работать ...

Ну да. Или по-твоему в той же джаве гонок данных быть не может?

Alex
только с чего ты взял что интерпретатор выставляет...

Ну, раньше это точно так было, потому что параллельный расчёт тензоров на нумпи начинался с отпускания этого самого аффинити, несмотря на то, что в потоках не питонокод

Alex- Автор вопроса
Oleksii Ovdiienko
если бы в питоне GIL разрешал паралельно работать ...

Еще один момент про многопоточность в питоне - если тебе прям она нужна "честная" без гил, то ты можешь этого добиться через сишные модули-расширения. Вот по-моему всякие нампаи таким занимаются.

Nikolay Markov
Ну, раньше это точно так было, потому что параллел...

а напомните основа реализации мат. библиотек не С часом? а не на С расширениях можно обходить гил и считать формулы быстрее?

Oleksii Ovdiienko
а напомните основа реализации мат. библиотек не С ...

мы вообще не про это. Аффинити никак не связано с гилом, это фишка ОС

Alex- Автор вопроса
Oleksii Ovdiienko
а напомните основа реализации мат. библиотек не С ...

Опять же, ускорение выполнения кода это большая тема и, насколько знаю, параллельное выполнение кода это не первый способ который должен рассматриваться. В крайнем случае CPUbound задачи можно расшарить между множеством процессов.

Oleksii Ovdiienko
Краткие сведения о GIL: Одновременно может выполн...

сорри, но примерно все перечисленные пункты неверные

Nikolay Markov
Ну, раньше это точно так было, потому что параллел...

нууу было бы крайне странно если бы интерпретатор пытался заигрывать с аффинити без контроля разработчика. поэтому вероятность что одна из веселых датасайентистских зависимостей это проделывала куда более высокая.

Alex
нууу было бы крайне странно если бы интерпретатор ...

вполне может быть. Но вообще это был бы хитрый ход - формально нет смысла запускаться *без* аффинити, потому что и так в 90% случаев параллелиться ничего не будет из-за GIL. А без него заимеем проблемы с когерентностью кэшей на ядрах и оверхед на системном шедулере

Oleksii Ovdiienko
Краткие сведения о GIL: Одновременно может выполн...

> Jython и IronPython Так протухло же! Можно выносить

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Всем вечера. Подскажите как лучше сделать. делаю на Д10 Например будет база данных на SQLite. в ней будет много таблиц. более 50шт Типа справочник. Содержать ID Name Id p...
Андрей Т 🐎
10
Всем здравствуйте!) У меня такой вопрос. Есть два роута, роут1 и роут2. Они связаны с очередью some_queue. По задаче предполагается, что есть два паблиша. Паблиш1 отправляет...
Format
10
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
Добрый день! Хочу спросить совета. Хочется в скрипт добавить некую конструкцию, что скрипт создал файл, который нужно потом скопировать в определенное место. Нашел такой сп...
Mikhail
4
Вопрос по WIN32: Насколько я понимаю то все функции win32 привязаны к объектам операционной системы. Например консоль, файл, кисть, окна итд. Следовательно функции win32 упра...
Tommy Vercetti
6
in telegram can i have multiple username? so instead of having multiple account for example one for work, one for friend and one for family with three diff numbers. using one ...
Mr Thieves
6
кто-то пользуется компонентами rx ? как их лучше ставить, через OPM? (lazarus)
Iluha Companets
15
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Hello, can I install macOS and run flutter on a virtual machine? Is it possible to print for iphone?
Mazones
11
Карта сайта