日期:2014-05-20  浏览次数:20657 次

读取流效的效率问题
正在做一个解析数据的A端,b端会想A端不停的发数据,A端从流中读出来并且分析并存储到数据库中.
但是我A端的效率很低,在b端20毫秒的一个数据写入流的时候,A端长时间接受就会有数据挤压在流中.

我的代码大致是:
A端一个线程 while(){
  str = br.readLine()
//之后str分析,拆解,写入数据库
}

b端就是一个TimerTask进行每个几秒进行一次发送;

A端使用了PreparedStatement来减少写入数据库的时间.

大家还有什么方法能让我的A端读取速度加快不会在流中挤压数据么???

我想一个线程读数据,并且放置到一个队列中,一个线程解析存储.
但是时间长了队列会很大...

------解决方案--------------------
br.readLine()这个没遇到换行会一直阻塞
br.read()一个一个字节读吧
------解决方案--------------------
多线程在咱个人电脑上效果是不明显,服务器都多是多核的。
探讨
引用:

一定要按顺序存?要是需要时间点的话,可不可以在数据发送的时候就加上

现在尝试使用多线程的方法读取流.发现效率没有提高啊.
百度只有多线程读取文件流的方法.但是我是不知道具体流有多大的.