- подскажите, как использовать Threaded :: synchronized в php, пожалуйста, спасибо
- подскажите, почему результат не 2000
Я использую расширение pthreads в php для создания многопоточности, но я столкнулся с проблемой, я не знаю, как работает Threaded :: synchronized, я гуглил, но мне не удалось, информация о php pthreads слишком мало, поэтому, пожалуйста, кто-нибудь может сказать мне причину? спасибо очень очень очень большое !!!
<?php
//for variable sharing
class obj extends Threaded {
public $counter;
}
//the class for multi threads
class workerman extends Thread {
public $obj;
public function __construct(obj $obj) {
$this->obj = $obj;
}
public function run() {
for ($ii = 0; $ii < 1000; $ii ++) {
$this->synchronized(function($thread){
$thread->obj->counter++;
}, $this);
}
}
}
$obj = new obj();
//start two thread
$a = new workerman($obj);
$b = new workerman($obj);
$a->start();
$b->start();
$a->join();
$b->join();
var_dump($obj->counter);exit();