タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

Javaとunixに関するt_yanoのブックマーク (2)

  • Java BlockingQueueでもっと遊ぶ:変形パイプラインから圏論へ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Java BlockingQueueで遊ぶ:パイプラインごっこ」の続きです。せっかくですから、もう少し遊んでみよう、っと。 今回のソースコード(zipアーカイブ) 持ち駒を少し増やす ここだけの用語法ですが、データの湧きだし元を入力デバイス、データの吸い込まれる先を出力デバイスと呼びましょう。入力ストリームを加工して出力ストリームに書き出すプログラムはフィルターと呼びます(これは一般的な用語法)。ここでは、データは文字(Javaのchar、またはCharacter型)に限定します。 「Java BlockingQueueで遊ぶ:パイプラインごっこ」では、次のようなデバイス/フィルターを準備しました。 入力デバイス FileIn 出力デバイス StdOut フィルター Word フィルター Tolower 簡単なデバイス/フィルターをさらに4つ付け加えておきます。 出力デバイス FileO

    Java BlockingQueueでもっと遊ぶ:変形パイプラインから圏論へ - 檜山正幸のキマイラ飼育記 (はてなBlog)
    t_yano
    t_yano 2007/12/22
    Blocking Queueでteeコマンド。おもしろい!
  • Java BlockingQueueで遊ぶ:パイプラインごっこ - 檜山正幸のキマイラ飼育記 (はてなBlog)

    java.util.concurrentパッケージにBlockingQueue<E>(Eは型パラメータ)というクラスがあるんですね。おー、これは便利。 BlockingQueueはキュー(先入れ先出しバッファ)ですが、バッファが空のときや満杯のときはスレッドを停止して待たせること(ブロッキング)を自動的にやってくれます。ということは、Unixのパイプと同じ機能を持ちますね。 僕は、stdinとstdout、getcharとputcharを使うプログラムがとっても気にいっていたので、BlockingQueueで再現してみます。 まずは、1文字単位入出力のインターフェース: // InOut.java interface In { int getc(); // -1 means EOF } interface Out { void putc(char c); void end(); } Out

    Java BlockingQueueで遊ぶ:パイプラインごっこ - 檜山正幸のキマイラ飼育記 (はてなBlog)
    t_yano
    t_yano 2007/12/22
    おもしろいおもしろい!
  • 1