Данная семантика применима только в 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();
}
?>