java Socket 通讯 服务端开启只监听了一个客户端cpu50% 请问这个问题如何解决?最好能贴点代码出来,谢谢了 15

找到问题了,是解析数据时,并添加到数据库,添加数据库时候CPU过高,这个有没有好的解决方法啊。在线等,急急急????... 找到问题了,是解析数据时,并添加到数据库,添加数据库时候CPU过高,这个有没有好的解决方法啊。在线等,急急急???? 展开
 我来答
bedweather
2012-10-12
知道答主
回答量:29
采纳率:0%
帮助的人:21.6万
展开全部
你代码没有贴出来,不好回答。
不过我想很有可能在你监听的while循环里面,下面代码中【其他操作】的部分,有计算操作,或者log内容处理等操作。如果有的话最好去掉。
while(true) {
if(getData()) {
//成功获得数据
} else {
//其他操作
}
}
追问
找到问题了,是解析数据时,并添加到数据库,添加数据库时候CPU过高,这个有没有好的解决方法啊。
追答
首先你要确定解析数据的算法,避免过多的排序和插入操作。如果数据量比较大,最好分批处理,拉长处理时间,来降低CPU使用率(毕竟这是一个取舍的过程就看那个数据对你更重要,如果是我的话,当然在这之前你要检查一下CPU设置,如果是多核CPU的话,最好检查一下每一个CPU的利用率)。我只能说这么多了。
1058106015
2012-10-12 · TA获得超过268个赞
知道小有建树答主
回答量:183
采纳率:0%
帮助的人:124万
展开全部
不是吧,你程序代码贴出来呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yangxiaoyi00
2012-10-12 · TA获得超过303个赞
知道小有建树答主
回答量:280
采纳率:0%
帮助的人:134万
展开全部
ServerSocket server;
try {
server = new ServerSocket(8000);

while (true) {
int i=0;
Socket client = server.accept();
System.out.println(client);
System.out.println(client.getInetAddress());
if(client!=null){
Socketlist.add(client);
Thread thread = new Thread(new ClientScoket(client));
thread.start();

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式