mam problem z komunikacją klasy z wątkami, sytuacja wygląda tak:
mam klasę główną (singleton) core, która powinna sterować wszystkimi wątkami i zapewniać komunikacje między nimi (do wątków używam Thread). Pomyślałem, że w klasie głównej (core) utworze publiczną zmienną i metodę która będzie zapisywać dane do tejże zmiennej a używana będzie w wątku.
Wygląda to mniej więcej tak:
core.php
<?php final class Core { public $data; // Zmienna do której zapisuje dane if( self::$oInstance == false ) { self::$oInstance = new Core(); } return self::$oInstance; } public function set_data($data){ // Metoda do zapisu danych $this->data = $data; } public function run(){ $this->worker_list[0] = new worker; $this->worker_list[0]->start(); } }
worker.php
<?php class worker extends Thread { private $core; // Instance main core function __construct() { $this->core = Core::getInstance(); } public function run(){ $this->core->set_data('Jakies dane ktore mają być wykorzystane w klasie głownej'); } }
(Przykłady napisałem z palca, więc może się coś nie zgadzać ale może jakoś lepiej rozjaśnią sytuacje)
Wygląda to tak, jakby worker tworzył sobie nową instancje klasy głównej lecz w rzeczywistości tak nie jest, więc teraz pytanie do Was, jak to zrobić żeby miało ręce i nogi, bo coś chyba poprzekręcałem i nie mogę sobie z tym poradzić.