正在做一个解析数据的A端,b端会想A端不停的发数据,A端从流中读出来并且分析并存储到数据库中.
但是我A端的效率很低,在b端20毫秒的一个数据写入流的时候,A端长时间接受就会有数据挤压在流中.
我的代码大致是:
A端一个线程 while(){
str = br.readLine()
//之后str分析,拆解,写入数据库
}
b端就是一个TimerTask进行每个几秒进行一次发送;
A端使用了PreparedStatement来减少写入数据库的时间.
大家还有什么方法能让我的A端读取速度加快不会在流中挤压数据么???
我想一个线程读数据,并且放置到一个队列中,一个线程解析存储.
但是时间长了队列会很大...
------解决方案--------------------------------------------------------
br.readLine()这个没遇到换行会一直阻塞
br.read()一个一个字节读吧
------解决方案--------------------------------------------------------
多线程在咱个人电脑上效果是不明显,服务器都多是多核的。