Skip to content

allengao0815aaa/multi_threads_xml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

multi_threads_xml

输入 XML 数据流后,第 1 阶段是事件划分阶段.在该阶段,事件 边界被准确快速识别;第 2 阶段是事件解析阶段,并行解析划分的多个数据块,产生子事件流;第 3 阶段是后处理 阶段,后处理模块对多个子事件流中未解决的事件进行检查,产生最后的结果事件流.

step1:

  1. 建立一个读入线程,该线程建立多个缓冲区的动态链表结构,每个缓冲区是固定长度(比如10k), 把文件数据的剩余数据中每次读固定长度的数据到一个新的缓冲区;每个新的缓冲区建立一个区号;
  2. 建立一个解析<线程,对新的缓冲区的<号作解析判断,记录<号的位置和类型; 位置信息包括:离文档开始处的距离;所处当前缓冲区号;离所处缓冲区开始处的位移量;

step2:

  1. 读入线程和解析<号线程并行运行,同时每个线程开始前都需要检索和修改缓冲区的以下状态信息(FINISH_STAGE0,START_STAGE0……),这些状态信息是竞争资源,需要采用锁机制!
  2. Stag和Etag的匹配性检查(文档结构是否合法),要求Stag和Etag的位置匹配正确且name是一样的。

step3: 检查不在同一块的stag,与etag是否匹配

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors