построчная многотредовость

Jul 16, 2020 05:55

ваще многотредовость для мильонядерных процов вещь занятная. ведь понятно, что 2+2 как ни крутись, на несколько ядер не раскидаешь. но ведь большинство вообще кода (важное слово) состоит из чего? из $bla = new Bla; $bla->do; или фик бы с ним, $bla23 = $bla->do();
ну, не всегда, я тут смотрю на сайтики в основном, но тем не менее...

что это значит с точки зрения анализа текста в этом плане? то, что за исключением создания объекта вызовы методов и функций можно попробовать чисто построчно запхать в треды. каждую в свой. да, треды должны быть практически прозрачными на создание и оверхед. да, есть некоторые нюансы. но в принципе почему бы и нет? главное понять где ждать все тредики и как это оформить текстом, ведь конец функции тут не очень подходит, нужно "чуть ранее". например так:
{ // чисто обертка для wait for all. а может - и построчной многотредовости
$bla = new Bla; $bla->do;
$bla = new Bla; $bla->do2;
} // где-то тут по дефолту ждем пока все отработает или чо не отвалится, причем, чисто в рамках обычной обработки ошибок, что важно и интересно, ведь ничо больше менять не надо! ни оборачивать, ни обрабатывать иначе.
а тут рендерим страничку, к примеру, из этих двух частей. [конец функции]

и вуаля - такие штуки уже вполне даже для мелких сайтов могут утилизировать все мильоны ядер. главное тока шоп оверхед на обработку тредов тут не накинулся.

ps в принципе, компилятор, понимающий, где используются результаты, может и весь код так поупихивать даже без указаний и скобочек. да хотя бы в академических целях. а где не может - не упихивать.

проуграммированья

Previous post Next post
Up