Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
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:// |