pthreads
PHP Manual

方法修饰符

Warning

仅适用于 pthreads v2。在 pthreads v3 中已经被移除。

pthreads 将会改写标明为 protected 和 private 的方法来提供更加适合多线程环境的对象。 对于所有的 Threaded 对象,pthreads 都会进行改写操作。

Example #1 protected 方法示例: 标记为 protected 的方法在同一时间仅允许一个线程访问

<?php
class ExampleThread extends Thread {
    public function 
run() {
        
/* thread code */
        
if ($this->synchronized()) {

        }
    }

    protected function 
exclusive() {
        
/* synchronized method */
    
}
}

$thread = new ExampleThread();
if (
$thread->start()) {
    
$thread->exclusive();
}
?>

Example #2 private 方法示例:标记为 private 的方法只能由创建该对象的线程调用

<?php
class ExampleThread extends Thread {
    public function 
run() {
        
/* thread code */
        
if ($this->insideonly()) {

        }
    }

    private function 
insideonly() {
        
/* private method */
    
}
}

$thread = new ExampleThread();
if (
$thread->start()) {
    
$thread->insideonly();
}
?>

pthreads
PHP Manual