タグ

pthreadsに関するKenji_sのブックマーク (2)

  • スレッド処理は慎重に – PHPでのスレッド処理 : 前編 | POSTD

    私が覚えている限り、非常に重い(または非同期の)タスク処理に関して、PHPは常に厳しい評価をされていました。これまではずっと、長いタスクを並列化したければ pcntl_fork を通してフォークするという方法を取らなければいけなかったので、タスクの結果を適切に処理することができませんでした。 そこで私たちは、キューイング(どちらかと言えばタスクを遅くするだけ)やReactPHP、または他の言語を一緒に使うといった、より複雑なソリューションへと向かっていきましたが、PHPでもスレッド処理は可能なのです。そしてより重要なのは、 その方法はあなたが思っているよりもはるかに簡単だということです。 この記事では、 pthreads 拡張(POSIX Threadsの略)について説明します。2012年ごろから広く使われていますが、多くの人がその存在を忘れているか、使うのが苦痛だと考えると思います。その

    スレッド処理は慎重に – PHPでのスレッド処理 : 前編 | POSTD
  • FuelPHPのtaskでマルチスレッドを使用すると外部クラスが見つからない

    FuelPHPのtaskでバッチ処理を行っていたのですが、処理時間がだいぶかかるようになったため、マルチスレッド化して並列処理を行うように改修しているのですが、不可解な挙動をするので、相談させて下さい。 テストスクリプトとして以下を記述しました。 fuel/app/tasks/test.php <?php namespace Fuel\Tasks; class Test { public static function run() { // 動く(10がインサートされる) \Foo_Bar::insert(10); $bar = new \Foo_Bar(); // 動く(20がインサートされる) $bar->run(); // 動かない(Class 'DB' not found) $bar->start(); } } fuel/app/classes/foo/bar.php <?php

    FuelPHPのtaskでマルチスレッドを使用すると外部クラスが見つからない
  • 1