现在在做一个tcp监听的,可以支持多线程,在调试的时候发现,多个连接连上后,数据同时写入一个xml文件会报错:一下是遇到的两个错误提示1.
xml文档结构必须从头到尾包含在同一个实体内。2.还有一个大概意思是标签丢失的提示。
可能错误的原因是xml不能同时写入,既然是这样,可不可以利用缓存来保存多个连接的数据,然后再开一个线程专门从这个缓存,写入xml文件,不知这方法可行?请各位大虾指点一下?

解决方案 »

  1.   

    写个synchronized 写入xml方法 (insertToXml)。
    你可以将这些数据封装到缓存中,直到获到insertToXml的锁,再将数据写入
      

  2.   


    你好,首先非常感谢你,冒昧的问一下,那怎么实现“将这些数据封装到缓存中,直到获到insertToXml的锁”,不太理解,谢谢了
      

  3.   

    http://www.oschina.net/p/jchattinghttp://code.google.com/p/jchatting/开源的socket chatting项目
      

  4.   

    查了好久的资料,二楼lijiemissfei的方法,我是个菜鸟不懂怎么写,我用的是把数据加入列队中,独自开一个线程来处理,感谢你们的回帖