タグ

clojureとasyncに関するishideoのブックマーク (3)

  • 本を読む Clojureのhttp.async.clientを試した

    Clojureの半日ハッカソン「Tokyo.clj」に参加して、ClojureのHTTPクライアントライブラリであるhttp.async.clientを初めて試しました。以下、メモまとめ。 背景 ClojureのHTTPクライアントライブラリは変動が激しいようです。http.agentが外れるとか、clojure-http-clientはドキュメントに「this library is deprecated」と書かれているとか、さて、どれがいいんだろうと悩みます。 clojure-http-clientのドキュメントには、clj-httpかhttp.async.clientがいいんじゃないか、と書き添えてあったので、この2つが気になっていました。特に私の目的が、複数同時接続なので、非同期リクエストのhttp.async.clientを試してみることにしました。 なにもの https://gi

  • Clojure - 実用的なプログラムの話をする - Qiita [キータ]

    Clojure で実用的なプログラムを書く こんにちわ、wozozoです。 最近、netty 4ベースのフレームワークを書いてるのですが、速度問題でほぼJavaで書いてしまい、書くことがなくなったので過去に作った実用的なプログラムの話をします。 algo.monads の話でも良かったのですが、他に書かれる方がいるでしょう。 たぶんこんなんを書かれると思います。 (ns cljinja.lexer (:use [clojure.algo.monads]) (:require [clojure.string :as str]) (:import [java.util.regex Pattern])) (def ^:dynamic *block-begin* "{%") (def ^:dynamic *block-end* "%}") (def ^:dynamic *variable-begi

    Clojure - 実用的なプログラムの話をする - Qiita [キータ]
  • Clojure + core.async による非同期&並列プロセスの世界 - 紙箱

    core.asyncによる非同期プログラミング core.async はClojure用の、事実上標準の非同期プログラミングのライブラリです。 core.asyncの一番わかりやすい説明は、「Go-langのchannelのClojure版」という言い方でしょう。goマクロによってgo-blockを作り、そのブロック内が非同期に動きます。このブロックが常駐すれば、軽量プロセスというやつになります。プロセス同士のやりとりをする口として、チャネル(channel)があります。core.asyncを使ったプログラムでは、チャネルへの入出力を介して非同期軽量プロセスにデータを処理させることで、全体のシステムを作り上げます。 goマクロはステートマシンを作り、チャネルへの入力があるたびにマシンが1回転します。この一回転時に、チャネルを待ち受けていたgoブロックにスレッドが割り当てられ、次のチャネル入

    Clojure + core.async による非同期&並列プロセスの世界 - 紙箱
  • 1