簡體   English   中英

SingleProducerConstrained和MaxDegreeOfParallelism

[英]SingleProducerConstrained and MaxDegreeOfParallelism

在C#TPL數據流庫中,SingleProducerConstrained是ActionBlocks的優化選項,當只有一個線程為動作塊提供時,您可以使用它:

如果塊一次只能由單個生成器使用,意味着一次只有一個線程將使用塊上的Post,OfferMessage和Complete等方法,則可以將此屬性設置為true以通知阻止它不需要應用額外的同步。

如果使用MaxDegreeOfPArallelism> 1的單個TransformBlock提供ActionBlock會違反在ActionBlock上將SingleProcerContrained設置為true的規則嗎? 或者是MaxDegreeOfPArallelism> 1的單個TransformBlock仍然算作“單一生產者”?

是的,我認為它被認為是單一的制作人。

這是因為所有構建的int塊都保持排序,因此只有在接受了第1項之后,才能將第2項(使用OfferMessage()方法 )提供給目標塊。 而這種約束意味着每次只能有一個線程向目標提供消息,這遵循“單一生產者”的定義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM