Монтаж лекции от 4 декабря 2023г Читает Георгий Курячий ✔ uneex.org/LecturesCMC/PythonI...
Жүктеу.....
Пікірлер: 7
@jamjam33374 ай бұрын
👏👍
@unx77845 ай бұрын
3:07 - соврал, он назывался Occam, и никакой Вирт его не делал
@vovsla4 ай бұрын
Жаль, что не упоминается поток "from threading import Thread" и нет его сравнения с async
@FrBrGeorge
3 ай бұрын
Сравнение могу привести хоть прямо здесь: ничего общего.
@vovsla
3 ай бұрын
@@FrBrGeorge хотелось бы узнать основные различия, знаю только, что async - асинхронное выполнение в одном потоке, а Thread - выполнение в параллельном потоке с использованием GIL. Но не очень непонятно в каких случаях что использовать.
@FrBrGeorge
3 ай бұрын
@vovsla, async - это, как и описано в лекции, организация последовательного выполнения фрагментов корутин под управлением некоторого общего образующего цикла-планировщика (который в Python предоставляет asyncio), и дисциплина оформления этих самых корутин. Треды - это (псевдо-)параллельное выполнение нескольких отдельных вычислительных потоков с общим доступом к памяти, оформленных более или менее как обычные подпрограммы. «Псевдо» - потому что в действительности у вас может быть вообще одно вычислительное ядро, что нисколько не мешает использовать треды. Как видите, общего и вправду мало. Единственное сходство - это всякие примитивы синхронизации, типа семафоров, но в случае корутин вы точно знаете, что между await-ами выполняется только этот код и никакой другой, а в случае тредов нужно быть готовым к переключению контекстов в любой момент. Соответственно и использовать.
Пікірлер: 7
👏👍
3:07 - соврал, он назывался Occam, и никакой Вирт его не делал
Жаль, что не упоминается поток "from threading import Thread" и нет его сравнения с async
@FrBrGeorge
3 ай бұрын
Сравнение могу привести хоть прямо здесь: ничего общего.
@vovsla
3 ай бұрын
@@FrBrGeorge хотелось бы узнать основные различия, знаю только, что async - асинхронное выполнение в одном потоке, а Thread - выполнение в параллельном потоке с использованием GIL. Но не очень непонятно в каких случаях что использовать.
@FrBrGeorge
3 ай бұрын
@vovsla, async - это, как и описано в лекции, организация последовательного выполнения фрагментов корутин под управлением некоторого общего образующего цикла-планировщика (который в Python предоставляет asyncio), и дисциплина оформления этих самых корутин. Треды - это (псевдо-)параллельное выполнение нескольких отдельных вычислительных потоков с общим доступом к памяти, оформленных более или менее как обычные подпрограммы. «Псевдо» - потому что в действительности у вас может быть вообще одно вычислительное ядро, что нисколько не мешает использовать треды. Как видите, общего и вправду мало. Единственное сходство - это всякие примитивы синхронизации, типа семафоров, но в случае корутин вы точно знаете, что между await-ами выполняется только этот код и никакой другой, а в случае тредов нужно быть готовым к переключению контекстов в любой момент. Соответственно и использовать.
@vovsla
3 ай бұрын
@@FrBrGeorge спасибо