網絡協議解析器代碼,解析單線程中的圖層。解析一些網絡協議後,得到唯一的對話框。 對於網絡協議解析器項目;有一個消息解析器,解析具有多個層的消息(例如,以太網,IP,TCP等)。解析字段之一是層中間的對話ID;這意味着在獲得它之前需要進行一些解析操作。得到dialog id解析後應該(因爲性能)多線程。 約束是指具有相同對話ID的消息應以相同的順序處理。我有一些想法,但不確定是否優雅。按參數排列的Java Multithread
- 創建10個隊列作爲對話框ID的最後一位,每個隊列解析單獨的線程。
- 多個執行程序的模塊操作相對於對話框id類似的第一個選項。
如何將消息處理爲多線程?
更多解釋; 有多於一個的消息相同的對話ID和它應處理相同order.These被對話ID之間沒有相關性,我的意思是對話ID = 100能夠對話ID之前處理= 99
消息例傳入訂單
- 對話ID = 100
- 對話ID = 99
- 對話ID = 98
- 對話ID = 100
- 對話ID = 100 消息2或消息4 - - 消息1.後消息5之前沒有消息4之間的任何順序
- 對話ID = 98
- 對話ID = 99
消息4應處理消息3等。
找不到問號。 – bezmax 2012-03-27 09:53:59
我猜只是最後一點是真正的問題,而且你問:「配置我的有效載荷的最佳方法是按順序處理具有相同對話ID的所有項目?」根據定義,「不具有相同對話ID的項目可以按任何順序處理」 - 即可以與具有dialogId = 1002的項目同時處理項目dialogId = 1001? – wmorrison365 2012-03-27 09:56:39
如果上述條件爲真,那麼:(1)我假定「按順序」的意思是說,一旦有效載荷項被解析器識別出來,它必須在由具有相同對話的解析器識別的下一個項之前被處理ID。即對於dialogId = 1001,解析器找到了項目1001_1,然後是1001_2,然後是1001_3,因此應按照該順序處理這些項目。如果是這樣,(2)處理每個項目的結果是否按照該順序保持是重要的,還是按照該順序完成實際的「處理」是足夠的? – wmorrison365 2012-03-27 09:59:22