Re: [問題] Golang iterate callback
※ 引述《carylorrk (Cary)》之銘言:
: C++ 可以自定 iterator, 在 golang 想到用 channel 達到類似功能的做法
: http://ideone.com/YwgBm4
: 這樣的界面對使用者最方便,combine 裏可以直接 iterate result
: 但是會有兩個問題:
: 1. 每次會先做完下一個, send to channel 時才卡住,我希望的是如果沒有讀就不要做
: 2. combiner 中途離開時沒有辦法很好的關閉 goroutine...
: 雖然可以直接關掉 channel 然後做 recover,但是感覺很不好XD
: 目前我想到的方法是把 callback wrap 起來給 combiner 呼叫
: http://ideone.com/tQ7mbu
: 不過這樣 combiner 裏需要使用者自己呼叫才能得到結果
: 不知道有沒有更好的處理方式?
我覺得,應該是你沒把計算模型設定好。本來的計算模型是 producer-to-consummer
(我自己發明的詞彙,不要去google),所以你程式是先做出資料,丟出去,然後
下一段流程才去處理資料。
而你需要的計算模型,應該是 request-response 。
接收資料的一端,是 request end 。發送資料的一端則是 response end 。
所以, iterator 是一個 data server ,等待 combiner 下達需求,才開始做。
這一部分是關於你的第一個問題。
至於第二個問題,一來是隨著你目前的計算模型而存在,二來,要看在這種偶合力
比較高的計算模型中,是否有機制可以讓 combiner 中途結束之前,拋出一個訊息給
iterator ,讓它也打算收工。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.159.130
※ 文章網址: http://www.ptt.cc/bbs/Programming/M.1412955909.A.8E6.html
推
10/11 01:06, , 1F
10/11 01:06, 1F
→
10/11 01:07, , 2F
10/11 01:07, 2F
→
10/11 01:08, , 3F
10/11 01:08, 3F
→
10/11 01:09, , 4F
10/11 01:09, 4F
→
10/11 01:09, , 5F
10/11 01:09, 5F
→
10/11 01:09, , 6F
10/11 01:09, 6F
→
10/11 01:10, , 7F
10/11 01:10, 7F
→
10/11 01:11, , 8F
10/11 01:11, 8F
→
10/11 01:13, , 9F
10/11 01:13, 9F
→
10/11 01:13, , 10F
10/11 01:13, 10F
→
10/11 01:14, , 11F
10/11 01:14, 11F
→
10/11 01:15, , 12F
10/11 01:15, 12F
→
10/11 01:15, , 13F
10/11 01:15, 13F
→
10/11 10:33, , 14F
10/11 10:33, 14F
→
10/11 10:34, , 15F
10/11 10:34, 15F
→
10/11 10:35, , 16F
10/11 10:35, 16F
→
10/11 10:36, , 17F
10/11 10:36, 17F
→
10/11 10:38, , 18F
10/11 10:38, 18F
→
10/11 10:38, , 19F
10/11 10:38, 19F
→
10/11 13:48, , 20F
10/11 13:48, 20F
→
10/11 13:53, , 21F
10/11 13:53, 21F
→
10/11 13:53, , 22F
10/11 13:53, 22F
→
10/11 22:59, , 23F
10/11 22:59, 23F
→
10/11 23:00, , 24F
10/11 23:00, 24F
→
10/12 12:19, , 25F
10/12 12:19, 25F
→
10/12 12:20, , 26F
10/12 12:20, 26F
→
10/12 12:20, , 27F
10/12 12:20, 27F
→
10/12 12:22, , 28F
10/12 12:22, 28F
→
10/12 12:23, , 29F
10/12 12:23, 29F
→
10/12 12:23, , 30F
10/12 12:23, 30F
→
10/12 12:24, , 31F
10/12 12:24, 31F
→
10/12 12:25, , 32F
10/12 12:25, 32F
→
10/12 12:26, , 33F
10/12 12:26, 33F
→
10/12 12:26, , 34F
10/12 12:26, 34F
→
10/12 12:26, , 35F
10/12 12:26, 35F
→
10/12 12:27, , 36F
10/12 12:27, 36F
→
10/12 12:32, , 37F
10/12 12:32, 37F
→
10/12 12:32, , 38F
10/12 12:32, 38F
→
10/12 12:33, , 39F
10/12 12:33, 39F
→
10/12 12:33, , 40F
10/12 12:33, 40F
→
10/12 12:34, , 41F
10/12 12:34, 41F
→
10/12 12:34, , 42F
10/12 12:34, 42F
→
10/12 12:35, , 43F
10/12 12:35, 43F
→
10/12 12:36, , 44F
10/12 12:36, 44F
→
10/12 12:36, , 45F
10/12 12:36, 45F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章