|
ToDo:
|
帰りにやられた~
threadを呼び出すと戻り値がchannelになってくれる。そのあたりがfutureとは違うようだ。
loopをforで最初作ってなぜかbig jobに入らず悩む。forだとlazy sequenceを生ずるのだよね。
(ns asyncthread.core
(:require [clojure.core.async
:as a
:refer [thread <!!]])
(:gen-class))
(defn threading[]
(loop[i 0]
(Thread/sleep 100)
(println "threading")
(if (< i 10)
(recur (inc i))
"Terminate")))
(defn -main[& args]
(let [c (thread (threading))]
(loop [i 0]
(do
(println "main" i)
(Thread/sleep 20))
(when (< i 10)
(recur (inc i))))
(println (<!! c))))
明日からはClojure - Transducersだな。