在B2B(企业对企业)应用中XML扮演一个重要的角色。在这些应用中采用Simple API for XML (SAX)或者document.nbspObject Model (DOM)解析器来解析xml文件。(这两个解析器都是Java的api,他们可以在下面的附录中找到)在一个单线程应用中解析是简单明了的。!-- frame contents -- !-- /frame contents --但是,在多线程的应用中这就是很复杂和具有挑战性了,比如说做一个应用服务器,因为应用经常会为解析xml创建一个专门的线程,解析的数据用来为许多同时并发运行的线程服务。这篇文章描述了一个在并发应用中的xml的解析实现。
设计方法
基于并发的生产和消费设计概念,一个专门的线程作为一个生产者去解析xml。一组线程作为消费者,作为解析xml数据的生产线程,他把数据存储在一个共享的数据结构中以供消费线程在将来进行处理时取得,为了最大化产生数据的能力同时最小化内存的使用,这个设计使用了一个非凡的队列来分别为生产者、消费者存储和找到解析的数据.
巧妙的队列(Smart Queuing)