网络协议解析器代码,解析单线程中的图层。解析一些网络协议后,得到唯一的对话框。 对于网络协议解析器项目;有一个消息解析器,解析具有多个层的消息(例如,以太网,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