2 回答

TA貢獻(xiàn)1843條經(jīng)驗 獲得超7個贊
首先,您需要了解rate.Limiter
和context.Context
類型的不同用途。允許您控制并發(fā)進(jìn)程的Limiter
執(zhí)行速率。如果Context
一個進(jìn)程或一組進(jìn)程繼續(xù)下去沒有意義(例如超時、丟失連接、用戶取消...),則允許終止該進(jìn)程或一組進(jìn)程。這些是簡化,因此請閱讀 doco 以獲取更多信息。
回答你的問題:
在示例中將上下文傳遞給 Wait() 函數(shù)的目的是什么?
沒有任何目的,因為TODO
上下文永遠(yuǎn)不會被取消。
這是否意味著限制器不會成為共享資源...?
不,它是共享的。你只有一個只有一個的MyClass
實例Limiter
。
如果沒有……我怎樣才能實現(xiàn)呢?
在每個 Process 函數(shù)調(diào)用上設(shè)置限制器是沒有意義的,因為一次調(diào)用永遠(yuǎn)不會超過 3 的限制。
我認(rèn)為您想要對 進(jìn)行多組不同的限速調(diào)用Process
,因此可能只需要 的多個實例MyClass
,每個實例都有自己的Limiter
。
我不確定你到底想做什么,但作為一個例子,速率限制器的典型用途是限制用戶或連接的進(jìn)程數(shù)。類似地,上下文可能與附加到單個連接的所有進(jìn)程相關(guān)聯(lián),因此如果連接終止,一切都可以被整齊地清除。所以一個可能的場景是你有一個Connection
有 aLimiter
和 a的類型Context
。
我希望這是有道理的。
- 2 回答
- 0 關(guān)注
- 113 瀏覽
添加回答
舉報