Size: a a a

2020 February 12

MM

Maksim Masiukevich in PHP
А, дык это не институт благородных девиц)
источник

MM

Maksim Masiukevich in PHP
Интернеты...) надо относиться с понтманием
источник

AS

Anton Shabouta in PHP
Во первых, @ibxth очень четко указал, что на самом деле языков с вытесняющей раз-два и обчелся. Досыпаю пепла и себе на голову. То что low level работает в го, все таже кооперативная, хотя для пользователя ( в данном случае пограмиста выглядит и не так).
источник

AS

Anton Shabouta in PHP
В го тоже кооперативная
источник

AS

Anton Shabouta in PHP
Aleksandr Khristenko
На самом деле там вроде пилят вытесняющую, но вроде ещё не доехало
Ой, ли. Там пилят эмуляцию, опять же, насколько я понял. Поправь если не так? Ну т.е. я не представляю сейчас как в языках с собственным рантаймом сделать вытесняющую.
источник

A

Aleksandr Khristenko in PHP
Anton Shabouta
Ой, ли. Там пилят эмуляцию, опять же, насколько я понял. Поправь если не так? Ну т.е. я не представляю сейчас как в языках с собственным рантаймом сделать вытесняющую.
А эмуляция это как? Оно будет обладать свойствами вытесняющей, но при этом таковой не являтся?
источник

AS

Anton Shabouta in PHP
А по поводу async php, не вижу большой разницы с py2 -> pu3. Это можно делать, и это отлично работает, если команда умеет в async в TS, C#, Py3, go, etc. Проблема в другом: есди есть такая команда, то может php не нужен? :)
источник

AS

Anton Shabouta in PHP
Aleksandr Khristenko
А эмуляция это как? Оно будет обладать свойствами вытесняющей, но при этом таковой не являтся?
Угу. Так или иначе у нас будет атом инструкция для процессора которую нельзя прервать по определению. Любой рантайм оперирует свои уровнем инструкций, который составляет N атомов, и да он может шедьюлить их, но уйти ниже, наврядли (?). Поправьте, если не так.
источник

A

Aleksandr Khristenko in PHP
Если что, я не особый знаток этого на самом деле.
Я знаю, что в го кооперативный планировщик и проявляется это на циклах, например.
Я знаю, что планируют это исправить.
Глубоко в подробности я не вдавался, т.к. на го вообще не пишу.
источник

AS

Anton Shabouta in PHP
Обсуждали этот вопрос с ребятами которые активно пишут на го (не бывшие пыхэпашники :)).
источник

A

Aleksandr Khristenko in PHP
Anton Shabouta
Ой, ли. Там пилят эмуляцию, опять же, насколько я понял. Поправь если не так? Ну т.е. я не представляю сейчас как в языках с собственным рантаймом сделать вытесняющую.
Ну и да, самый очевидный вариант - используем системные потоки и получаем вытесняющую многозадачность =)
источник
2020 February 13

AS

Anton Shabouta in PHP
Системные потоки, опять же, не уйдут выше своего уровня в вытеснении
источник

AS

Anton Shabouta in PHP
Нельзя побить один сисколл на две части
источник

AS

Anton Shabouta in PHP
Читая mailbox в ерланге без таймаута заблокируешь, и никакая вытесняющая тебе не поможет
источник

A

Aleksandr Khristenko in PHP
Я может неверно понимаю, но разве сискол это не аналог отдачи управления в кооперативной многозадачности?
источник

AS

Anton Shabouta in PHP
Именно оно и есть
источник

AS

Anton Shabouta in PHP
Вопрос только в количестве
источник

A

Aleksandr Khristenko in PHP
Тогда я не понимаю фразы "не уйдут выше своего уровня в вытеснении" и "нельзя побить один сискол на две части".
У нас сискол это просто передача управления, оно атомарно же.
источник

AS

Anton Shabouta in PHP
я про то что "условно" ты  не можешь побить mov ax, bx на две инструкции. Это просто атом на провне процессора. Когда рантайм языка возвращает управление ОС то это только дело ОС сколько инструкций выполнить до твоих следующих вызовов.
источник

AS

Anton Shabouta in PHP
Как пример если мы работаем с async php то наш рантайм может переключаться только на каждом yield асинхронной операции. Если у нас golang, то вцелом происходит то же, но у нас есть неявное yield после каждой строчки. Если мы пишем async код на С/С++, etc язык без рантайма, то тут уже ОС берет на себя отвественность когда нам вернуть управление.
источник