13. Асинхронные возможности Python

Монтаж лекции от 4 декабря 2023г
Читает Георгий Курячий

uneex.org/LecturesCMC/PythonI...

Пікірлер: 7

  • @jamjam3337
    @jamjam33374 ай бұрын

    👏👍

  • @unx7784
    @unx77845 ай бұрын

    3:07 - соврал, он назывался Occam, и никакой Вирт его не делал

  • @vovsla
    @vovsla4 ай бұрын

    Жаль, что не упоминается поток "from threading import Thread" и нет его сравнения с async

  • @FrBrGeorge

    @FrBrGeorge

    3 ай бұрын

    Сравнение могу привести хоть прямо здесь: ничего общего.

  • @vovsla

    @vovsla

    3 ай бұрын

    @@FrBrGeorge хотелось бы узнать основные различия, знаю только, что async - асинхронное выполнение в одном потоке, а Thread - выполнение в параллельном потоке с использованием GIL. Но не очень непонятно в каких случаях что использовать.

  • @FrBrGeorge

    @FrBrGeorge

    3 ай бұрын

    @vovsla, async - это, как и описано в лекции, организация последовательного выполнения фрагментов корутин под управлением некоторого общего образующего цикла-планировщика (который в Python предоставляет asyncio), и дисциплина оформления этих самых корутин. Треды - это (псевдо-)параллельное выполнение нескольких отдельных вычислительных потоков с общим доступом к памяти, оформленных более или менее как обычные подпрограммы. «Псевдо» - потому что в действительности у вас может быть вообще одно вычислительное ядро, что нисколько не мешает использовать треды. Как видите, общего и вправду мало. Единственное сходство - это всякие примитивы синхронизации, типа семафоров, но в случае корутин вы точно знаете, что между await-ами выполняется только этот код и никакой другой, а в случае тредов нужно быть готовым к переключению контекстов в любой момент. Соответственно и использовать.

  • @vovsla

    @vovsla

    3 ай бұрын

    @@FrBrGeorge спасибо

Келесі