make loop

This commit is contained in:
chai2010
2015-12-28 15:57:07 +08:00
parent 77148f84d4
commit ba7261d140
25 changed files with 44 additions and 44 deletions

View File

@@ -62,7 +62,7 @@ https://golang.org/blog/
我們可以用一個有容量限製的buffered channel來控製併發這類似於操作繫統里的計數信號量概念。從概念上講channel里的n個空槽代表n個可以處理內容的token(通行證)從channel里接收一個值會釋放其中的一個token併且生成一個新的空槽位。這樣保證了在沒有接收介入時最多有n個發送操作。(這里可能我們拿channel里填充的槽來做token更直觀一些不過還是這樣吧~)。由於channel里的元素類型併不重要我們用一個零值的struct{}來作爲其元素。
讓我們重寫crawl函數將對links.Extract的調用操作用取、釋放token的操作包裹起來來確保同一時間對其隻有20個調用。信號量數量和其能操作的IO資源數量應保持接近。
讓我們重寫crawl函數將對links.Extract的調用操作用取、釋放token的操作包裹起來來確保同一時間對其隻有20個調用。信號量數量和其能操作的IO資源數量應保持接近。
```go
gopl.io/ch8/crawl2