PHP多线程删除重复

时间:2015-04-27 04:31:23

标签: php multithreading pthreads

我想创建一个可以移除重复项但使用pthreads的类。我有一个array带有一些重复的行,并将它们放入每行的一个线程中,这是我的代码。

header("Content-type: text/plain");

class Arr {
    public $my_variable = array();

    public function add($value) {
        $this->my_variable[$value] = 1;
        return $this->my_variable;
    }

    public function check($value)
    {
        if(isset($this->my_variable[$value])){
            return true;
        } else {
            return false;
        }
    }
}

class workerThread extends Thread 
{
    public $arr;
    public function __construct($i){
        $this->i = str_replace("\r","",$i);
        $this->i = str_replace("\n","",$this->i);
        $this->arr = new Arr();
    }

    public function run()
    {
        if($this->arr->check($this->i)!==true)
        {
            $add = $this->arr->add($this->i);
            echo date('H:i:s') . ' - '. $this->i . " - (".count($add).")\r\n";
        }
    }
}


$mailExp = array(
    'talunays@gmail.com',
    'talunays@gmail.com',
    'talunays@gmail.com',
    'talunays@gmail.com',
    'talunays@gmail.com'
);
$total = count($mailExp);

for($i=0;$i<$total-1;$i++)
{
    $workers[$i]=new workerThread($mailExp[$i]);
    $workers[$i]->start();
}

但它不起作用,仍然存在重复的行并且无法移除......

0 个答案:

没有答案