官术网_书友最值得收藏!

Dropping buffer

A dropping buffer also has a fixed size. However, instead of blocking producers when it is full, it simply ignores any new items, as shown here:

    (def result (chan (async/dropping-buffer 2)))
    (go-loop []
      (<! (async/timeout 1000))
      (when-let [x (<! result)]
        (prn "Got value: " x)
        (recur)))
    
    (go  (doseq [n (range 5)]
           (>! result n))
         (prn "Done putting values!")
         (async/close! result))
    
    ;; "Done putting values!"
    ;; "Got value: " 0
    ;; "Got value: " 1  

As before, we still have a buffer of size two, but this time, the producer ends quickly without ever getting blocked. The dropping-buffer simply ignored all items over its limit.

主站蜘蛛池模板: 南宁市| 宣化县| 视频| 商水县| 城固县| 大港区| 油尖旺区| 青神县| 山阴县| 宁国市| 精河县| 闽侯县| 泊头市| 台州市| 南充市| 新野县| 霞浦县| 陆川县| 娄底市| 获嘉县| 白城市| 若羌县| 剑河县| 西安市| 日照市| 彩票| 河池市| 巴彦淖尔市| 多伦县| 满城县| 双城市| 晋中市| 铁力市| 梁河县| 浠水县| 股票| 历史| 依兰县| 达孜县| 信阳市| 沂水县|