タグ

並列処理に関するt-murachiのブックマーク (11)

  • 【PHP8.1】PHPで簡単に非同期処理を書けるようになる - Qiita

    PHPは長きにわたり同期的、すなわち、あらゆる処理を上から順に実行していくというスタイルを取ってきました。 しかしたとえば、複数のURLからデータを取ってきて結果をまとめたいといった場合、時間のかかるHTTPリクエストは同時に投げたいですよね。 この用途にはGuzzleというライブラリが存在し、これを使えば同時にリクエストを投げられます。 しかし、ではHTTPアクセスとDBアクセスを同時にやりたい場合は? 時間のかかる計算を裏でやりたい場合は? などと考え始めると、こういった個別のライブラリでは対処しきれません。 ということで汎用的な非同期処理をPHPで書けるようにするRFCが提出されました。 PHP RFC: Fibers Introduction 人類史上ほぼ全ての期間において、人々はPHPを同期的なコードとしてのみ書いてきました。 同期的に実行されるコードのみが存在し、そしてそれを同

    【PHP8.1】PHPで簡単に非同期処理を書けるようになる - Qiita
    t-murachi
    t-murachi 2021/03/18
    構文糖衣を喧伝するのでなく、最低限の価値あるコア機能で足場を整えようという発想。とても良いと思う。
  • Big Sky :: 書評「Go言語による並行処理」

    O'Reilly Japan, Inc. 様に献頂きました。ありがとうございます。 そして献頂く際にお声を掛けて頂いた、書の翻訳を担当された ymotongpoo さんにもお礼を申し上げます。ありがとうございます。 書の訳は非常に素晴らしく、とても原文が英文であったとは思えないほど綺麗で、読んでいく中で「原文でどの様に表現されているんだろう」といった引っかかりも無く、とてもスムーズに読み進められました。 Go 言語に関わって随分と長くなってきました。初めて Go を知ってからユーザがどんどん増える様を見る事が出来るのは正直に言って非常に嬉しいです。 ふと Go の魅力は何かと聞かれたら幾つか挙げる事が出来ますが、間違いなく選ぶのが「非同期処理の簡単さ」です。これまで多くの開発者が OS スレッドで実現してきた非同期処理を、Go 言語は少ないイディオムとインテリジェントなランタイムを

    Big Sky :: 書評「Go言語による並行処理」
  • node.js と thread hog の話(1)

    ここ数日、 node.js で色々と作りはじめているのだが(node.js が一番力を発揮するのは、xmpp server や、push notification server のようにソケットを開きっぱなしにして非同期通信をするケースだと思うのだが、それについては来週のメルマガで詳しく解説する)、これで思い出すのが Microsoft 時代の「"thread hog" 退治」だ。 "thread hog" とは私が作った造語で、"memory hog" (メモリをやたらと使うプログラムのこと)と同じように、thread を不必要に作るプログラムのこと。 最初に出会った thread hog は、Microsoft が作っていた proxy server だった。コネクションが1000を超すとやたらと遅くなり、しまいには落ちてしまうという欠点を持っていたため、一時は「出荷出来ないところか、

  • Boost.ThreadとBoost.Optional - イグトランスの頭の中

    次の2つを混ぜます。 std::threadをあとから開始。それとムーブ対応したコンテナについて – Faith and BraveC++で遊ぼうBoost.Optional と Boost.InPlaceFactory で初期化遅延 – 銀天随筆集Boost.Optionalで初期化を遅らせる技法をBoost.Thread(コンストラクトするとスレッドが動き出す)と組み合わせるとどうなるか、任意のタイミングで実行を開始できるようになるというわけです。 そんなわけで、Akiraさんの「std::threadをあとから開始。それとムーブ対応したコンテナについて」の記事の冒頭のコードをBoost.OptionalとIn place facotryで書き直したものがこちらです。 #include <iostream> #include <boost/optional.hpp> #inclu

    Boost.ThreadとBoost.Optional - イグトランスの頭の中
    t-murachi
    t-murachi 2012/04/19
    いろいろと書き方があるのね。
  • std::threadをあとから開始。それとムーブ対応したコンテナについて - Faith and Brave - C++で遊ぼう

    std::thread/boost::threadは、コンストラクタでスレッドの実行を開始するので、あとから実行しようと思ったらどうすればいいのか。ムーブセマンティクスがなかった頃、Boost.Threadではshared_ptrと組み合わせることでこれを実現していました。 #include <iostream> #include <boost/shared_ptr.hpp> #include <boost/thread.hpp> class X { boost::shared_ptr<boost::thread> thread_; void do_() { std::cout << "do" << std::endl; } public: ~X() { if (thread_) thread_->join(); } // あとで実行(shared_ptr::resetでthreadを作る

    std::threadをあとから開始。それとムーブ対応したコンテナについて - Faith and Brave - C++で遊ぼう
  • C言語におけるvolatileとかの話

    なんか面白げなので、とりあえずとぅぎゃった。必要なtweetが抜け落ちている感があるので、まあその辺は誰か埋めてください。というか、既に誰かとぅぎゃってるような気が…。

    C言語におけるvolatileとかの話
  • みんな大好きvolatile

    めるぽん.c @melponn volatileを言語の保証する範囲内で有効に活用する方法知らない。というか言語の保証が何なのかも知らない。

    みんな大好きvolatile
    t-murachi
    t-murachi 2012/02/25
    主要コンパイラ別動作マトリックスとかあったら欲しいかも…
  • できる!並列・並行プログラミング

    現在のマルチスレッドプログラミングの抱える問題点と、代替案をわかりやすく解説いたします。最近登場したConcurrent Revisionsも解説します。Read less

    できる!並列・並行プログラミング
  • mixi大規模障害について 解明編 - mixi engineer blog

    こんにちは、システム技術部たんぽぽGの森です。 先日のmixi大規模障害の原因となったmemcachedの不具合の詳細な解明ができました。 再来週まで発表を見合わせようと思ったのですが、早くお伝えしたほうがいいと思いましたので公開発表致します。 memcachedとlibevent memcachedはlibeventというライブラリを使用してクライアントからの要求(接続、コマンド送信)を処理しています。 libeventを使用するにはevent_baseという構造体を用います。 main threadはmain_baseを使用します。 static struct event_base *main_base; ... int main (int argc, char **argv) { ... main_base = event_init(); ... /* enter the ev

    mixi大規模障害について 解明編 - mixi engineer blog
    t-murachi
    t-murachi 2010/08/24
    並列処理 bug のケーススタディとしてもよい資料。森本さんおよび関係者の皆さん超どつかれさんです。
  • Microsoft の新プログラミング言語「Axum」は並列処理向け言語 | スラド デベロッパー

    Microsoft が新たなプログラミング言語「Axum」をリリースしている (家 /. の記事より) 。 Axum は以前は「Maestro」という名前で開発されていた並列言語で、マルチコア CPU で高いパフォーマンスを発揮できるとのこと。Axum はクラスを宣言する機能はないが、.NET プラットフォームで動作し、C#の クラスを利用することは可能。現在 Axum はまだ立ち上げの段階だが、開発者からのフィードバックは歓迎するとのこと。 Axum については、InfoQ や Publickey でも紹介されている。

    t-murachi
    t-murachi 2009/05/14
    「Microsoftの言語ヲタぶりは異常」<激しく同意w 何気にお家芸なんだよなー。
  • 【続報】東証が緊急会見、システム障害の引き金はデータベースのデッドロック

    3月10日に東京証券取引所の株式売買システムで障害が発生し、午前9時から午後1時まで2銘柄が売買できなかった問題(関連記事1、関連記事2)で、東証は同日午後5時から緊急の記者会見を開いた。鈴木義伯常務取締役CIO(最高情報責任者)は、「データベースのデッドロックが引き金だった」と説明した(写真)。 デッドロックが発生したのは午前8時59分43秒から44秒にかけて。午前の取引が始まる午前9時の直前だ。複数銘柄の注文を1つにまとめた「バスケット取引」のトランザクションと、同注文に含まれる一部銘柄の訂正注文のトランザクションとの間で起こった。 2つのトランザクションが、それぞれどのようなデータベースをロックしたまま放さなかったのかについては公表を避けたが、注文データを格納するデータベースと、バスケット取引のデータを格納するデータベースの2つだったとみられる。 オンラインでデータベースを更新するト

    【続報】東証が緊急会見、システム障害の引き金はデータベースのデッドロック
    t-murachi
    t-murachi 2008/03/11
    うわぁあぁぁ。。。開発者のみなさんご苦労様です。無理しないでね。こういうのの原因究明はリアル徹夜作業でまぢ死ねるからなぁ。。。(T-T)/~
  • 1