SunshinePHP 2020 CFP Started

Модификаторы методов

Внимание

Данная семантика применима только в pthreads v2. В pthreads v3 она удалена.

pthreads переопределяет методы с модификаторами protected и private, чтобы предоставить функциональностью, больше подходящую для работы в режиме многопоточности. pthreads применяет эту функциональность для всех создаваемых объектов Threaded.

Пример #1 Пример метода с модификатором protected: методы с таким модификатором могут вызываться только одним потоков одновременно.

<?php
class ExampleThread extends Thread {
    public function 
run() {
        
/* код потока */
        
if ($this->synchronized()) {

        }
    }

    protected function 
exclusive() {
        
/* синхронизированный метод */
    
}
}

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

Пример #2 Пример метода с модификатором private: приватные методы могут вызываться только Threaded-объектов во время выполнения

<?php
class ExampleThread extends Thread {
    public function 
run() {
        
/* код потока */
        
if ($this->insideonly()) {

        }
    }

    private function 
insideonly() {
        
/* синхронизированный метод */
    
}
}

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

User Contributed Notes

There are no user contributed notes for this page.
To Top