PHP Multithreading Multitasking(Çoklu Kullanım) i destekler mi?

Cevap: Duruma göre…
pcntl_fork() ile çalışan bir process i çatallayabilirsiniz. Benim üzerinde durmak istediğim nokta ise stream_socket_client() ve stream_select()
fonksiyonları. Eğer amacınız Net üzerinden epey bir yere bağlanıp birtakım bilgilere ulaşmak ise bütün adreslere sırası ile teker teker ulaşıp bilgileri alıp derlemek epey uzun sürebilir. Mesela bir spider(ağ) yazmak isterseniz, 100 lerce veya 1000 lerce adresin ayakta olup olmadığını tespit etmek isterseniz bir url e bağlan, gerekli bilgiyi al, bir sonrakine geç çok uzun sürecek bir işlem olacaktır. stream_socket_client() ve stream_select() in uygun kullanımı ile asenkron isteklerde bulunabilir ve aynı anda birden fazla adrese bağlanabilirsiniz. Yazdığım programda 462 adrese senkron bağlanmam 608 ve 1078 saniye sürdü. Aynı işlemi stream_socket_client() ve stream_select() fonksiyonlarını kullanarak asenkron olarak yazınca ise aynı işlemler sırası ile 46.50, 40.25 ve 39.93 saniyede tamamlandı. Konu ile ilgili detaylı bilgileri aşağıdaki adresten bulabilirsiniz:

http://www.ibm.com/developerworks/library/os-php-multitask/index.html
http://netevil.org/blog/2005/may/guru-multiplexing

Leave a Reply