我有兩個方法(在C#):披薩,線程,等待,通知。這是什麼意思?
List<Pizza> CookPizza(List<Order>);
List<HappyCustomers> DeliverPizza(List<Pizza>);
這些操作(從從一個傳遞到另一個比薩餅除外)沒有共同的目標,並且是線程安全的。他們每個人需要幾秒鐘才能執行,他們每個人都使用不同的資源(烤箱vs汽車)。因此,我想同時運行它們。
如何整理穿線這些限制:
我知道所有的訂單在啓動(比方說,我有他們的100,000)。訂單可以由多個比薩餅組成,我不知道有多少比薩餅在任何訂單中,直到這些比薩餅被煮熟之後。 (我知道的很奇怪)。通常一個訂單有1個比薩餅,但最多可以有10個。
活動比薩餅的數量一般不應超過100.這包括比薩餅新鮮烹製的比薩餅正在交付。這是一個軟限制,所以我可以超過它(例如,當一個大訂單煮熟時)。硬限制可能接近500.
這兩種操作在進行大量工作時效率更高。一般來說,CookPizza在提供至少20份訂單時效率最高。送至少50份披薩時,送披薩最爲有效。也就是說,如果我給這些方法的項目數量少於這些數量,我會看到性能下降。如果剩下所有東西,就可以使用更少的項目。
我一直在努力的主要問題是方法可能需要彼此等待。
- DeliverPizza可能需要等待周圍CookPizza完成50
- CookPizza可能需要等待周圍DeliverPizza活躍比薩餅的數量減少到100
這些方法是否必須具有這些簽名? – jgauffin 2011-04-11 12:34:37
+1如果你點擊這個鏈接,因爲字PIZZA – 2011-04-11 12:46:06
@jgauffin,no。你有什麼考慮? – 2011-04-11 16:25:11