22. 09. 2005. | #1 |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
Multithreading i PHP
Imam CLI script koji ce se koriscenjem socket f-ja kaciti na neki sajt, slati query, parsovati rezultat i tako ukrug. Socket f-je koristim zbog IP Binding-a (socket svaki put uspostavlja konekciju koristeci drugi IP, na serveru koji naravno ima vise IP adresa kako ne bi bio banovan).
E sad, da bi ubrzao ovaj proces, voleo bih ako je ikako moguce ovo uspostavljanje konekcije raditi sa vise niti (Multithreaded) kako bi imao vise konekcija odjednom. U jezicima poput Jave ili Perl-a to je izvodljivo ali nisam siguran za PHP. Ima li neko iskustva sa ovim ? |
22. 09. 2005. | #2 |
Python Ambassador
Master
|
Not gonna happen... Well not unless you're using linux. Any ****'s possible there (and I don't mean it in a good way).
__________________
Python Ambassador of Serbia |
22. 09. 2005. | #3 |
Filip Milivojević
Certified
Datum učlanjenja: 06.06.2005
Lokacija: Pirot (Nis), Serbia, Serbia and Montenegro
Poruke: 51
Hvala: 0
0 "Hvala" u 0 poruka
|
Da, kao što petar kaže, te funkcije su tu, po dokumentaciji, one služe upravo za upravljanje procesima na POSIX arhitekturama, ali ja baš i nisam uspeo da ih nateram da rade ono što bi trebalo.
Recimo funkcija fork je na mom linux box-u napravila novi process, ali on umesto da je nastavio sa izvršavanjem od te funkcije, skript je počeo da se izvršava od početka. Sad, možda sam ja nešto tu loše izprogramirao... U svakom slučaju probaj, pa ako uspeš, javi... |
22. 09. 2005. | #4 |
Python Ambassador
Master
|
Po teoriji fork bi trebao da radi sledeće (AFAIK):
0. Nađe dovoljnu veliku parčad memorije i zauzme je 1. Napravi kopije DATA, STACK i CODE segmenata 2. Napravi kopije CPU registara 3. Izmeni neke podatke da imaju smisla - uglavnom vrednosti CPU registara vezane za pozicije gorepomenutih segmenata i status registre IIRC. I nastavlja da izvršava gde je "tata" stao, tj prva asemblerska instrukcija nakon poziva fork-a. Disclamer: Sve ovo je mnogo jasnije nekom ko je imao arhitekturu računara, konkuretno programiranje i operativne sisteme kao predmete na faxu.
__________________
Python Ambassador of Serbia |
23. 09. 2005. | #5 | |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
Citat:
|
|
23. 09. 2005. | #6 |
Python Ambassador
Master
|
Swtich to python or Java.
Ili možeš napravi bot mrežu pomoću nekog trojanca i tako raditi simulantne zahteve
__________________
Python Ambassador of Serbia |
23. 09. 2005. | #7 |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
Nasao sam interesantan članak na ovu temu koji ne zatheva ni fork ni threading.
http://netevil.org/node.php?nid=280 |
23. 09. 2005. | #8 |
Python Ambassador
Master
|
Hm, interesantno, ako sam dobro shvatio u suštini se koristi neblokirajuća operacija. Jedino bi sinhronizacija mogla biti problem, no da te to brine pretpostavljam da ne bi koristio PHP
__________________
Python Ambassador of Serbia |
|
|