<?php
$count=0;
class My extends Thread
{
private $myid;
// ini_set('max_execution_time', 0);
//echo date("Y-m-d H:i:s")."<br/>";
public function __construct($id)
{
$this->myid = $id;
}
public function run()
{
for($t=0;$j+$t<=100;$t+=10){ //future buy
for($k=0;$j+$t+$k<=100;$k+=10){//future sell
for($l=1;$l<=14;$l++){ // strike
for($m=0;$j+$k+$m<=300;$m+=10){ //put buy
for($n=1;$n<=14;$n++){ // strike
for($o=0;$o<=300;$o+=10){ // call buy
for($p=1;$p<=14;$p++){ //strike
if($p==$l)
continue;
for($q=0;$q<=300;$q+=10){ // put sell
for($r=1;$r<=14;$r++){ // strike
if($r==$n)
continue;
for($s=0;$s<=300;$s+=10){ // call buy
$count ++;
}
}
}
}
}
}
}
}
}
}
}
}
echo date("Y-m-d H:i:s")."<br/>";
$mycalls = [];
for($i=0;$i<=100;$i+=10)
{
$mycalls[$i]= new My($i);
$mycalls[$i]->start();
$mycalls[$i]->join();
}
echo date("Y-m-d H:i:s")."<br/>";
echo "<br>";
echo $count;
?>
答案 0 :(得分:0)
My class的调用run方法。它应该是return $ count或echo $ count。
答案 1 :(得分:0)
我不确定我完全理解你的意思&#34;如何获得计数变量&#34;的输出,但我发现可能会出现一些问题。
1)$ count是一个全局变量,而不是一个类或一个方法变量,简单地在run方法中向count添加1将不会对类定义之外的$ count进行任何更改。
2)我没有看到任何更新$ count的run方法(尽管它在类外)的变量被调用。
3)即使run方法在某个地方调用,你也必须在run方法的开头添加一行global $ count。
4)我建议你在课堂内部存储$ count并使用函数返回它,这意味着该类看起来像这样:
Class My extends Thread{
protected $count = 0;
public function run(){
//...
$this -> count++;
//...
}
public function getCount(){
return $this -> count();
}
}
然后从类实例中获取计数值:
$myInstance = new My();
$myInstance -> run();
$someCount = $myInstance -> getCount();
由于您正在创建我的101个实例,因此代码看起来像这样:
$mycalls = [];
$count = 0;
for($i=0;$i<=100;$i+=10)
{
$mycalls[$i]= new My($i);
$mycalls[$i]->start();
$mycalls[$i]->join();
$count += $mycalls[$i] -> getCount();
}
echo $count;