Size: a a a

2021 March 25

M

Maxim Kainov in phpGeeks
Artur BAGArt
Поток это программа. Ты можешь на пхп открыть 2 файла?
У программы может быть много потоков
источник

AB

Artur BAGArt in phpGeeks
На пхп не может
источник

M

Maxim Kainov in phpGeeks
Artur BAGArt
На пхп не может
Почему, может
источник

AB

Artur BAGArt in phpGeeks
Это будет 10 раз запущенная программа
источник

AB

Artur BAGArt in phpGeeks
Ну или либы кастомные
источник

AB

Artur BAGArt in phpGeeks
Типа птрид или курл мульти
источник

V

Vladimir in phpGeeks
Maxim Kainov
Вызов в этом же потоке выполняется?
Взял данные первого запроса, дал задание ОС на IO операцию (например, на получение данных из бд) и не дождаясь завершения этой операции взял данные другого запроса и начал их обраьатывать, т.е. можно конкуретно работать сразу с несколькими запросами, потому что IO операции неблокирующие, не заставляющие воркер ждать, простаивать, вместо простоя выполняется следующее действие.
источник

AB

Artur BAGArt in phpGeeks
Но это не пхп
источник

AB

Artur BAGArt in phpGeeks
Vladimir
Взял данные первого запроса, дал задание ОС на IO операцию (например, на получение данных из бд) и не дождаясь завершения этой операции взял данные другого запроса и начал их обраьатывать, т.е. можно конкуретно работать сразу с несколькими запросами, потому что IO операции неблокирующие, не заставляющие воркер ждать, простаивать, вместо простоя выполняется следующее действие.
Все еще проще объяснитт
источник

A

Artyom in phpGeeks
Maxim Kainov
Вызов в этом же потоке выполняется?
Разница в блокирующем/неблокирующем IO идёт на уровне взаимодействия с внешними сервисами.
Ты вместо того, чтобы спать, пока база данных сделает тебе выборку говоришь - кинь в меня выборку, когда закончишь, в ожидании ответа занимаясь другими делами.
И передаёшь коллбэк того, что делать с полученной информацией.
источник

AB

Artur BAGArt in phpGeeks
Пхп принимает запрос из  nginx и идет в sql и читает пишет в кэш на. Редис или мескэш
источник

AB

Artur BAGArt in phpGeeks
Это. Уже 3 соединения
источник

V

Vladimir in phpGeeks
Maxim Kainov
Почему, может
Многопроцессность, но не многопоточность. Там же головняки есть с многопоточностью, pthreads всякие, которые вроде даже deprecated.
источник

M

Maxim Kainov in phpGeeks
Vladimir
Взял данные первого запроса, дал задание ОС на IO операцию (например, на получение данных из бд) и не дождаясь завершения этой операции взял данные другого запроса и начал их обраьатывать, т.е. можно конкуретно работать сразу с несколькими запросами, потому что IO операции неблокирующие, не заставляющие воркер ждать, простаивать, вместо простоя выполняется следующее действие.
Как это дал задание ОС
источник

V

Vladimir in phpGeeks
Maxim Kainov
Как это дал задание ОС
Воркер
источник

AB

Artur BAGArt in phpGeeks
Artyom
Разница в блокирующем/неблокирующем IO идёт на уровне взаимодействия с внешними сервисами.
Ты вместо того, чтобы спать, пока база данных сделает тебе выборку говоришь - кинь в меня выборку, когда закончишь, в ожидании ответа занимаясь другими делами.
И передаёшь коллбэк того, что делать с полученной информацией.
Это тоже не очень понятно. Принцип проще. Когда ты читаешь из сокета fgets/fread ты пока не получишь что-то извне или не получишь разрыв соединения будешь ждать. До таймаутов. А в неблокирующес соединении ты спросишь 'че есть че?) ' и если нет пойдешь дальше выполнять код
источник

V

Vladimir in phpGeeks
Vladimir
Воркер
Выполнил системный вызов неблокирующий к ядру ОС и продолжил дальше свою работу, не дождаясь завершения операции
источник

M

Maxim Kainov in phpGeeks
Vladimir
Воркер
У ОС есть неблокирующие вызовы?
источник

V

Vladimir in phpGeeks
Maxim Kainov
У ОС есть неблокирующие вызовы?
Конечно)
источник

V

Vladimir in phpGeeks
В этом вся суть)
источник