Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| php:pthreads [2017/01/24 17:21] – [Примеры] mirocow | php:pthreads [2017/01/25 00:46] (текущий) – [Статьи] mirocow | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| {{tag> | {{tag> | ||
| - | ====== Threading for PHP - Share Nothing ====== | + | ====== |
| * https:// | * https:// | ||
| Строка 7: | Строка 7: | ||
| * https:// | * https:// | ||
| + | ===== Установка ===== | ||
| + | |||
| + | ==== Brew (MacOS) ==== | ||
| + | |||
| + | <code bash> | ||
| + | $ brew install php70-pthreads | ||
| + | </ | ||
| + | |||
| + | ==== pecl ==== | ||
| + | |||
| + | <code bash> | ||
| + | $ pecl install pthread | ||
| + | </ | ||
| + | |||
| + | ==== Docker ==== | ||
| + | |||
| + | <code bash> | ||
| + | $ docker pull jdecool/ | ||
| + | </ | ||
| ===== Примеры ===== | ===== Примеры ===== | ||
| Строка 233: | Строка 252: | ||
| ?> | ?> | ||
| </ | </ | ||
| + | |||
| + | <code php> | ||
| + | class Wallet{ | ||
| + | public $balance; | ||
| + | public function __construct($money){ | ||
| + | $this-> | ||
| + | } | ||
| + | public function getBalance(){ | ||
| + | return $this-> | ||
| + | } | ||
| + | public function setBalance($value){ | ||
| + | $this-> | ||
| + | } | ||
| + | } | ||
| + | class MyThread extends Thread{ | ||
| + | private $wallet; | ||
| + | private $std; | ||
| + | public function __construct($wallet, | ||
| + | $this-> | ||
| + | $this-> | ||
| + | } | ||
| + | public function run(){ | ||
| + | $this-> | ||
| + | $hack = $this-> | ||
| + | if($hack-> | ||
| + | sleep(1); | ||
| + | $hack-> | ||
| + | echo $this-> | ||
| + | //Here is Wrong! | ||
| + | var_dump($hack == $this-> | ||
| + | } | ||
| + | else | ||
| + | echo $this-> | ||
| + | | ||
| + | }, | ||
| + | } | ||
| + | } | ||
| + | $wallet = new Wallet(200); | ||
| + | $std = new stdClass(); | ||
| + | for($x=0; | ||
| + | $pool[] = new MyThread($wallet, | ||
| + | $pool[$x]-> | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== Примеры использования / Помошники (IDE Helpers) ===== | ||
| + | |||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| ===== Документация ===== | ===== Документация ===== | ||
| Строка 241: | Строка 310: | ||
| * https:// | * https:// | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| + | * http:// | ||
| + | * https:// | ||