タグ

threadと懇切丁寧に関するshigiryouのブックマーク (2)

  • Java 非同期 I/O のデザインパターン (クライアント編) - #9 Backyard

    New I/O の非同期処理を実装する時にいつも使うパターンの個人的設計まとめ。非同期 I/O はアプリ要件によって設計を柔軟に変える必要があるので定石というわけではありませんし、安全に組み替えるにはそれなりの知識が必要です。 この記事が説明のベースにしているサンプルソースは My Design Pattern for Asyncronous I/O · GitHub に置いてあります。 非同期 I/O といえば 1 つのスレッドで複数のソケット I/O を管理する方法です。 非同期 I/O を生かした設計というものは必ず Producer/Consumer 型、イベント駆動型設計となります。これはパフォーマンスと引き換えにオブジェクト指向の汎用設計化を低下させ、特定の困難なバグを生む余地を増やします。個人的には C10K 問題を想定する必要がない程度 (同時に扱うソケット数が 1000

    Java 非同期 I/O のデザインパターン (クライアント編) - #9 Backyard
  • [雑記] スレッド プールとタスク(C# によるプログラミング入門)

    概要 Ver. 4.0 C# 3.0 で導入されたラムダ式と、 .NET 4 で導入された Task、Parallel、ParallelEnumerable などのクラスを使うことで、 非同期処理や並列処理が簡潔に記述できるようになりました。 また、C# 5.0 では非同期処理用の新構文が追加される予定です。 参考: 「非同期処理」 このページでは、これら非同期処理の基礎となる Task クラスや、その背後にあるスレッド プールというものについて説明していきます。 ポイント スレッドはそれなりに高コストなので使い回しをしたい → スレッド プール。 スレッド プールを使った非同期処理を行うには、.NET Framework 4 で導入された Task クラスが便利です。 スレッドを使った非同期処理を行いたい動機としては、以下の2つが挙げられます。 非ブロッキング処理: I/O 待ちとかで

    [雑記] スレッド プールとタスク(C# によるプログラミング入門)
  • 1