| pcntl_fork() PHP | ||
|---|---|---|
| bl4ckb1rd22. mar 2010 21:12:48Pridružen od: 18. avg 2008 962 objav +464-765 | #1Hmm malce se spogledujem z njim, pa nisem čisto ziher kako se stvar obnaša... Najbolje bi bilo sicer probati vendar dajmo raje malce teorije, preden grem programirat in na koncu dojamem da to sploh ni to... Skratka, želim izvesti več funkcij, ki so že spisane in sicer vse hkrati... ala multithreading. Na simpl bi sicer šlo z CURL-om, vendar ker imam že spisane funkcije in jih ne bi rad večji del še enkrat spisal, bi raje uporabil pcntl_fork() se pravi da bi spawnal nekaj childov, ki bodo executali vsak svojo funkcijo, ter nastavili spremenljivke, ki jih potem v glavnem programu nadalje prikažem. Gre se predvsem zato, da bi se funkcije izvršile hitreje in ne bi bilo potrebno čakati predolgo časa da neka funkcija konča svoje delo. Bodo ob taki kodi vsi childi executani hkrati ali ne ?Hvala za odgovor... nazadnje urejal bl4ckb1rd 22. mar 2010 21:13:18 všeč(0)ni všeč(0)spam(0) Ruska ruleta v command line-ju: [ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo *Click* | |
| bostjans2. apr 2010 17:18:38Pridružen od: 8. mar 2010 26 objav +17-40 | #2PHP ne podpira multithreading programiranja. Najbols kar lahko nardis je simulacija le-tega z uporabo pcntl-ja. Ampak to kreira povsem nove procese, ki imajo edino zvezo s parentom, da ko umrejo, sistem pošlje SIGCHLD parentu in le-ta lahko prebere exit status umrlega childa. Boš moral pa sam spedenati IPC za vračanje rezultatov itd. Še mal informacij tukej: http://phplens.com/phpeverywhere/?q=node/view/254 Ena stvarca, ki sem jo jaz naredil z uporabo pcntlja (standalone application server in php) je pa tukaj, če rabiš primere uporabe in IPCja: http://github.com/bostjan/PHP-application-server nazadnje urejal bostjans 2. apr 2010 17:19:16 všeč(0)ni všeč(0)spam(0) | |
| bl4ckb1rd2. apr 2010 19:05:36Pridružen od: 18. avg 2008 962 objav +464-765 | #3Na koncu sem se odločil za cURL... ker ta podpira multithreading. Tako da sem hardcodov zadevo, čeprov sm mogu večino kode spremenit in je blo precej težje kot bi bilo z pcntl_forkom... Poleg vsega potrebuje php tudi podporo in recompile, če nima pcntl modula že vključenega, kar pa ne pride v poštev... Lepa hvala za odgovor vseeno. všeč(0)ni všeč(0)spam(0) Ruska ruleta v command line-ju: [ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo *Click* | |
stran 1 od 1 |<<1>>| | ||