タグ

coroに関するxaicronのブックマーク (4)

  • Big Sky :: 非同期UI

    最近、GoGTKバインディングを作ってるのだけど、先日ようやく簡易twitterクライアントを作れるまでに至ったのだが、そのtwitterクライアントの「タイムライン更新」ボタンを押した時に画面をブロックさせずに画面を更新する方法を考えてた。 Perl-GTKならばCoroを使ってこうするだろうか。 use strict; use warnings; use Gtk2 '-init', '-threads-init'; use AnyEvent; use Coro; use Coro::Timer; my $window = Gtk2::Window->new('toplevel'); $window->signal_connect( destroy => sub { exit; } ); my $vbox = Gtk2::VBox->new; my $button = Gtk2::Bu

    Big Sky :: 非同期UI
  • Coroを使って並行処理 - JPerl Advent Calendar 2009

    こんにちわ。『層・圏・トポス』読者の会からの刺客、id:hirataraです。 「並行処理」って言葉はなんだか魅力的ですよね! そこで、今日はCoroを使った並行処理を紹介します。なお、Coroはコアモジュールではありませんので、使ってみたい場合にはCPANからインストールして下さい。 スレッドを作る Coroでは、asyncによって新しいスレッドを作ることができます。ただし、asyncでスレッドを作っても、何もしなければ他のスレッドに勝手に処理が移ることはありません。asyncで作成した別のスレッドに制御を移すには、明示的な操作が必要となります。ここではcedeを使って、asyncブロックへ処理を移しましょう。 use strict; use warnings; use Coro; async { print "Another thread\n"; }; print "main thre

    xaicron
    xaicron 2009/12/21
  • Coro::Intro和訳 - Logical and Creative i18n

    ちょっと波に乗り遅れた感じもしていますが,Coroの5.2もリリースされたことだし,今まで勉強してきたことの復習も兼ね, Coro::Introを訳してみる. http://search.cpan.org/~mlehmann/Coro-5.2/Coro/Intro.pod 訳やそもそもの理解が間違っていたら是非コメントとかで教えてくださいm(__)m どうでもいいけどマジでインデントがスペース3つだ...w Coroの紹介 これはCoroとCoroのサブモジュールの重要な機能について紹介するチュートリアルです. まず基的なコンセプトを紹介し,その後にそれらの簡単な使い方を紹介します. Coroって何? Coroは初期の段階ではコルーチン*1と呼ばれるファーストクラスの継続の特定の要件を実装したシンプルなモジュールとして作られ始めた. これは基的には,現在の実行ポイントを保ったまま他のポ

  • おさかなラボ - Coroでより賢い非同期クローラを作る

    前回のエントリでは簡単なクローラの作り方を説明した。しかしこのクローラには欠点があり、取得したいURLが何千何万とある場合、一度にhttp_getが走ってしまい、リソースを使い切ったり同じサーバーへのアクセスを待つ間にタイムアウトしたりと都合が悪かった。そこで今回はAnyEventに加えCoroを使うことにより、並列を使ってリソースへの同時アクセス制限を行うクローラの書き方を解説する。 これは前回のエントリの改良版になるので、初めてこれを読む方は当該エントリを先に読んで頂きたい。 まず、前回はAnyEventを使い、condvarとsend-recvを使ってイベントの監視をしていたが、Coroと同時に使う場合これでは都合が悪い。イベントループを回す場合、一般的にAnyEventはrecvを、Coroはjoinを使うが、これらはどちらもイベントループが終わるまでブロックするのでどちらかし

  • 1