Ces sémantiques ne s'appliquent qu'aux pthreads v2. Ils ont été supprimés dans pthreads v3.
Pthreads écrase la fonctionnalité des modificateurs de méthodes protégées et privées afin de founir une fonctionnalité plus conforme aux objets multi-threads. Pthreads applique cette fonctionnalité à tous les objets Threaded depuis leurs créations.
Exemple #1 Exemple de méthode protégée : les méthodes protégées peuvent seulement être exécutées par un seul Thread à la fois.
<?php
class ExampleThread extends Thread {
public function run() {
/* Code du thread */
if ($this->synchronized()) {
}
}
protected function exclusive() {
/* méthode de synchronisation */
}
}
$thread = new ExampleThread();
if ($thread->start()) {
$thread->exclusive();
}
?>
Exemple #2 Exemple de méthode privée : les méthodes privées ne peuvent être exécutées par l'objet Threaded que pendant leur exécution
<?php
class ExampleThread extends Thread {
public function run() {
/* Code du thread */
if ($this->insideonly()) {
}
}
private function insideonly() {
/* méthode privée */
}
}
$thread = new ExampleThread();
if ($thread->start()) {
$thread->insideonly();
}
?>