Size: a a a

Django [ru] #STAY HOME

2019 October 16

A

Andrey in Django [ru] #STAY HOME
полноценные потоки ОС
источник

AF

Anton Fircak in Django [ru] #STAY HOME
окей, итого у нас есть многопоточное приложение на пайтоне, выделили 5 потоков, создались они в ОС, при этом каждый из этих потоков конкурирует за гил?
источник

А

Алексей in Django [ru] #STAY HOME
да, ну или делает что-то другое
источник

AF

Anton Fircak in Django [ru] #STAY HOME
Алексей
да, ну или делает что-то другое
а эти потоки паралельны или же всегда работает только 1 из них?
источник

А

Алексей in Django [ru] #STAY HOME
ну если я написал "делает что-то другое", то это явный намёк на параллельность
источник

А

Алексей in Django [ru] #STAY HOME
потому что "что-то другое" как раз гилом не покрывается
источник

AF

Anton Fircak in Django [ru] #STAY HOME
Алексей
ну если я написал "делает что-то другое", то это явный намёк на параллельность
это имеется в виду работает другое приложение? или же все в пределах 1 пайтон процесса?
источник

А

Алексей in Django [ru] #STAY HOME
ну есть же ОС под питоном, питон не в вакууме работает
источник

А

Алексей in Django [ru] #STAY HOME
есть ещё нативные библиотеки, которые дёргаются из питона
источник

AF

Anton Fircak in Django [ru] #STAY HOME
Алексей
ну есть же ОС под питоном, питон не в вакууме работает
понял, значит сис. время отдается на  другие приложения
источник

А

Алексей in Django [ru] #STAY HOME
нет
источник

А

Алексей in Django [ru] #STAY HOME
на другие функции
источник

А

Алексей in Django [ru] #STAY HOME
питоновский код читает из сокета - питон внутри вызывает нужную функцию ОС, так как эта функция написана не на питоне, то гил для неё снимается, и пока она выполняется могут параллельно выполняться другие потоки
источник

AF

Anton Fircak in Django [ru] #STAY HOME
правильно ли утверждать что в питоне при многопоточности переключение между потоками происходит по времени или же по колву выполненных инструкций. В асинхронном программировании контекст переключается только в заданных точках переключения(установленных программистом), а не с периодичностью, определенной CPU.
источник

А

Алексей in Django [ru] #STAY HOME
питон не переключает контекст, это делает ОС
источник

А

Алексей in Django [ru] #STAY HOME
питон лишь при интерпретации кода захватывает специальный лок, периодически его отпуская
источник

А

Алексей in Django [ru] #STAY HOME
тогда если другой тред попытается интерпретировать питоновский код, он попытается захватить этот лок, но если лок уже захвачен, то поток будет ждать его освобождения
источник

AF

Anton Fircak in Django [ru] #STAY HOME
но скажем сама концепция переключениями между потоками в многопоточной программе лежит на ос, а в асинхроном приложении лежит на программисте?
источник

А

Алексей in Django [ru] #STAY HOME
код, который не имеет отношения к интерпретатору питона про этот лок ничего не знает, поэтому может выполняться параллельно интерпретатору питона или другому коду
источник

А

Алексей in Django [ru] #STAY HOME
Anton Fircak
но скажем сама концепция переключениями между потоками в многопоточной программе лежит на ос, а в асинхроном приложении лежит на программисте?
да
источник