2. TAK
●
Dużo łatwych do wydzielenia odrębnych zadań
– Obliczenia
– Pobieranie plików, dręczenie SOAPa
● Potężny serwer, dużo RAMu
● Lepsze zagospodarowanie sprzętu i łącza
NIE
● Operacje na bazach danych
● Operacje na dysku
● Serwery oparte o gniazdka (select!)
● Może biblioteka zewnętrzna już to ma? (np. GraphicsMagick do
zdjęć)
● Koszty utrzymania rosną!
3. Komunikacja z wątkiem
● Kolejki komunikatów (msg_get_queue,
msg_receive)
– Ograniczenia rozmiaru! (do obejścia)
– Autoserializacja (uwaga na klasy!)
– Protip: ftok używa tylko jednego znaku!
● Dzielona pamięć (shmop_open, shmop_read)
– „Prawie” plik, bardziej zmienna
– Trzeba synchronizować zapis/odczyt
– Dane muszą mieścić się w pamięci
8. pcntl_fork
● Najstarszy mechanizm wątków
● Działa wszędzie (czyli nie na Windowsie)
● Łatwe w uruchomieniu, trudne w synchronizacji
● Robi się trudno gdy chcemy mieć więcej dzieci
● Wątek od razu się uruchamia
● Komunikacja z wątkiem jest na naszej głowie
● Kopiowanie zasobów!
● Łase na pamięć
9. pcntl_fork
<?php
$pid = pcntl_fork();
if($pid < 0) die('Uuuups');
if($pid) {
//tu wpadnie w wątku rodzica
pcntl_wait($status); //czekamy aż dziecko skończy
} else {
//tu się toczy wątek dziecka, działamy!
}
10. proc_open
● „Prawie” to samo co fork
● Uruchamia się nowy proces
● Uniwersalne
● Łase na pamięć
● Bardzo przydatne strumienie wejścia/wyjścia
● Skomplikowane uruchamianie i zarządzanie
● Nice! (proc_nice)