Прв пут го гледам ова, претходно знаев за node cluster, а и така ми беше посочено од сениор јс девелопери кога ги прашував како се справуваат со голем број на конкурентни реквести.
Ама пак не ми е тоа тоа, или не е ко во go или php open swoole. Апликацијата не се лоуда од меморија, односно немаш тред пул со веќе постоечки тредови, тредовите не комуницираат меѓу себе преку канали односно не делат заедничка меморија на процесот. Во go да речеме не на секој нов реквест се бутстрапира апликацискиот код, туку се лоуда од меморија, исто и во php. Друго гледам сам го дефинираш бројот на тредови, дел од кодот се извршува во главниот евент луп, додека останатиот иде во тред, додека во свол односно кај хттп серверот на свол имаш приемтив скеџулер кој или лоуда или креира нови корутини/тредови самиот. Ако да речеме реквестот заглави во една корутина/тред поради икс причини - да речеме праќаш хттп реквест до некое страно апи од кодот, тогаш скеџулерот ја суспендира таа корутина привремено и врзува нов реквест со друга корутина/тред или го извршува остатокот од кодот во друг тред, немаш блокирање, за во ноуд не сум сигурен колку е тоа точно.
Сега читам и за мултитредингов у пајтон
While Multithreading took 20 seconds, Multiprocessing took only 5 seconds.
So now that we are convinced that they’re not the same, we would like to know why. For that let’s move to the next misconception about multithreading.
In Multithreading, threads run in parallel.
FALSE !
Actually in a ThreadPool, only one thread is being executed at any given time t.
Revealing the true face of Multithreading
medium.com
Благе везе нема ова со мултитрединг во пајтон ако не е возможно повеќе тредови на еден процес да извршуваат код паралелно.