Alexander
файберы - конкурирующие потоки, в каждый момент времени работает один
Необязательно. Обычно fibers называют "потоки", реализованные "руками" в рантайме языка или в библиотеке, в отличие от потоков ОС. Файберы нужно, соответственно, скедулить (schedule) для запуска на "настоящих" потоках (ОС), но делать это можно по-разному. В общем случае - N-to-M concurrency. Так делают Erlang, Haskell, Go.
Alexander
С доп. приседаниями так делают и в Java, C#, Rust, etc.
Cat
Файберы же просто асинхронщина
Αλεχ
а таски это другое
Alexander
Не знал про разницу между тасками и файберами. Каких только названий не придумают! 😂
Alexey
корутины!
Alexey
(были еще в 80х годах, модными стали только сейчас 😊 )
Alexey
Реально, корутины были еще в modula-2, которая вышла в лохматом 1978 году.
Αλεχ
GC ваще появились еще раньше
Αλεχ
не говоря про ООП
Αλεχ
я про смоллток тащем-та
Alexey
о, в Simula 67 тоже были корутины. Которая 1967 года, очевидно.
Alexey
Но симула ладно - оно тормозное и интерпретируемое, и вообще ООПнутое. Но модула-2 то быстрая, нативная и до сих пор в gcc живущая 😃
պլհկ
файберы - конкурирующие потоки, в каждый момент времени работает один
файберы = потоки в юзерспейсе треды = потоки о которых знает ядро
Αλεχ
файберы = потоки в юзерспейсе треды = потоки о которых знает ядро
то есть ядро не знает про файбер, созданный через CreateFiber?
Αλεχ
яснопонятно
պլհկ
ой не надо тут со своим шиндошсом
պլհկ
поебать чо там в вашем манямирке происходит
Loo
но давайте всё что не о расте в жерк
Αλεχ
Anonymous
ой не надо тут со своим шиндошсом
ой не надо тут со своим линухом
Dmitry
убедил
Berkus
а GIL это как раз про то, если я правильно понял описание
Нет, gil это просто лок шаред структур интерпретатора питона
Berkus
А что у него там шаред я даже знать не хочу
Berkus
файберы = потоки в юзерспейсе треды = потоки о которых знает ядро
Не факт, есть полностью юзерспейсные потоки)
Berkus
Причём один на весь интерпретатор
Ну да, на это намекает буква G
Alexander
И что?
В терминологии чёрт ногу сломит - вот что. 😃
Антон
Если вам дали высшее образование, это ещё не значит, что вы его получили
Alexander
Так в чём там разница между fibers и tasks? И между ими обоими и корутинами? 😊
Αλεχ
таск это фьюча по сути
Αλεχ
ты не будешь спрашивать, в чем разница между футурой и тредом, правда?
Alexander
Видимо, троллинг получился слишком тонким - не рассчитывал, что вы и вправду начнёте мне объяснять. Либо просто считаете меня идиотом - почему бы и нет, считать по-другому я, кажется, поводов не давал... 😃
Αλεχ
затралено
Αλεχ
Anonymous
Я вот только не понял, допустим есть только один поток на всю программу. Я запускаю футурку в реакторе токио, и предположим что эти футурки не спавнятся на пуле тредов. Если так, то никакого прогресса не произойдет, верно?
Anonymous
Так как поток единственный будет занят event loopом
Антон
Щас, секунду
Anonymous
Anonymous
Либо я что-то не понимаю, либо
Антон
Щас, секунду
https://www.reddit.com/r/programmingcirclejerk/comments/8qb5m6/pythonist_starts_to_suspect_that_lifelong/e0hvci3/?context=3
Anonymous
Так чё там, смотрите, поток занят тем, что слушает, готова футурка к поллу или нет. Но если вот этот *единственный* в теории поток занят, то футурка никогда не будет готова
Anonymous
С экзекутором на пуле все ясно, я вот этого не понимаю
Anonymous
պլհկ
Если это просто цпуфутурка но она просто выполнится
պլհկ
1.спавнишь футуру 2.экзекутор делает ей пол Тут 2 пути: 1.это ио - она на поле должна зарегаться в ивент лупе и встать в очередь 2.это цпу - она сразу выполнится
Anonymous
То есть цпу футурка блочит
պլհկ
Да
Kerrigan
2. пруф или после остальных на тредпуле
պլհկ
Речь не о тред пуле
Anonymous
Все, отлично, именно это я и хотел узнать
Anonymous
Спасибо огромное
պլհկ
А о сингл треде
Kerrigan
а
Anonymous
Так, и чтобы наверняка, когда ио футурка регается в лупе и встаёт в очередь, что именно происходит потом
Anonymous
Луп ожидает нотификации
Anonymous
То есть сигнала о том что такой-то дескриптор закончил работу
պլհկ
На нотификации дергает ей полл
պլհկ
Она сделает итерацию и либо скажет реди либо зарегается опять в ивент лупе
Anonymous
А, то есть ио футурки по чуть-чуть выполняются
Anonymous
Что-то типо state machine
Anonymous
Правильно?
պլհկ
Да
Anonymous
Отлично
Anonymous
Спасибо ещё раз
Sergey
Что-то типо state machine
давайте не писать сообщения столбиками, пожалуйста
պլհկ
Соответственно между итерациями может влезть другая
պլհկ
Да
պլհկ
https://github.com/polachok/toykio