go-blocksを実行しているスレッドプールはかなり小さいので、go-blocks内のいくつかの操作はお勧めできません。たとえば、blocking I/O is badを実行して、計算量の多い操作を行うことは悪いです。いくつかのそのような操作がgo-blocksで実行されると、スレッドプール全体が繁殖し、他のgo-blocksはまったく実行できなくなります。Clojure core.async go-blocksはいつ便利ですか?
Clojureプログラマは、最も一般的なシナリオとしてどのようなブロックを使用していますか?これは、すでに非同期ライブラリでの作業に主に役立つのですか?ライブラリ/コードを使用してより美味しいチャンネルの変形にコールバックを変換しますか?私は非常に興味があるでしょうが、実際に駐車場の操作で行くブロックがスレッドよりも好ましい場合があります。
お返事ありがとうございます。だから私は時間の1%を実行しているタスクがある場合、私は〜100 MBのメモリを節約することができますか?おそらく(GBs +で)大量のメモリを節約するために、私は時間の0.1%を実行しているタスクを持っている必要がありますか?私は私の質問は、(JVMの)Clojureのためだと思う - どのような種類のタスクはこれらですか? – zlatanski
それはあなた次第です! 1つの例は、ネットワークまたはディスク/ DBのいずれかにスレッドをブロックする任意の種類のI/Oです。 –
しかしブロックを使ってI/Oをブロックするのは悪いですね。これはスレッド全体をブロックするので、スレッドプール全体がブロックされます。 – zlatanski