index.php
<?php
if (class_exists ( "Entity\My" )) {
$my = new Entity\My ( 200 );
}
if (class_exists ( "Entity\T" )) {
for($i = 0; $i < 3; $i ++) {
$t [] = new Entity\T ( $my );
}
}
foreach ($t as $item){
$item->start();
}
t.class.php
<?php
class T extends \Thread{
private $my;
public function __construct($my){
$this->my = $my;
}
public function run(){
$this->my->draw("120");
}
}
my.class.php
<?php
class My extends Thread{
private $balance;
public function __construct($balance){
$this->balance = $balance;
}
public function draw($cost){
$this->lock();
if($this->balance >= $cost){
usleep(500);
$this->balance -= $cost;
echo Thread::getCurrentThreadId() . "__get__${cost},now the balance is:{$this->balance}<br/>";
}
else
echo Thread::getCurrentThreadId() . "__get fail__,now the balance is :{$this->balance}<br/>";
$this->unlock();
}
}