Tôi đang sử dụng phần mở rộng pthreads cho PHP. Khi tôi thực thi kịch bản PHP từ cmd
trên Windows, tôi nhận được các luồng song song nhưng khi tôi gọi cùng một tập lệnh từ Apache, tôi nhận được một kết quả khác và có vẻ như với tôi như việc thực hiện một luồng đơn lẻ.pthreads cho PHP không thực thi các chuỗi song song trong Apache
Có cấu hình nào mà tôi nên thực hiện cho Apache để nhận phản hồi như cmd
(song song) không?
class AsyncOperation extends Thread {
public function __construct($arg){
$this->arg = $arg;
}
public function run(){
if($this->arg){
for($i = 0; $i < 50; $i++) {
echo "Yoo " . $this->arg . "<br>\n";
}
}
}
}
$thread = new AsyncOperation("World ----------");
$thread2 = new AsyncOperation("Second -------------------------");
$thread->start();
$thread2->start();
for($i = 0; $i < 100; $i++) {
echo "Standard <br>\n";
}
$thread->join();
$thread2->join();
mã ví dụ cho phản ứng trong cmd
như:
Yoo World ----------<br>
Yoo World ----------<br>
Yoo World ----------<br>
Standard <br>
Standard <br>
Yoo World ----------<br>
Yoo Second -------------------------<br>
Standard <br>
Standard <br>
Trong trình duyệt web:
Cập nhật: trên các trình duyệt khác nhau tôi nhận được kết quả khác nhau; vấn đề này có thể liên quan đến bộ đệm, mà tôi sẽ điều tra.
có u cố gắng đặt 1 giây ngủ trong mỗi hoạt động không đồng bộ? – Blacksonic
kết quả khá giống nhau. –
bạn mong đợi kết quả chuỗi xen kẽ nào? sau đó chia chuỗi trong hàm chuỗi, đầu ra chuỗi đầu tiên sau đó ngủ cho vài millisecs và chuỗi thứ hai đầu ra. – SparKot