java Socket 通讯 服务端开启只监听了一个客户端cpu50% 请问这个问题如何解决?最好能贴点代码出来,谢谢了 15
找到问题了,是解析数据时,并添加到数据库,添加数据库时候CPU过高,这个有没有好的解决方法啊。在线等,急急急????...
找到问题了,是解析数据时,并添加到数据库,添加数据库时候CPU过高,这个有没有好的解决方法啊。在线等,急急急????
展开
3个回答
展开全部
你代码没有贴出来,不好回答。
不过我想很有可能在你监听的while循环里面,下面代码中【其他操作】的部分,有计算操作,或者log内容处理等操作。如果有的话最好去掉。
while(true) {
if(getData()) {
//成功获得数据
} else {
//其他操作
}
}
不过我想很有可能在你监听的while循环里面,下面代码中【其他操作】的部分,有计算操作,或者log内容处理等操作。如果有的话最好去掉。
while(true) {
if(getData()) {
//成功获得数据
} else {
//其他操作
}
}
追问
找到问题了,是解析数据时,并添加到数据库,添加数据库时候CPU过高,这个有没有好的解决方法啊。
追答
首先你要确定解析数据的算法,避免过多的排序和插入操作。如果数据量比较大,最好分批处理,拉长处理时间,来降低CPU使用率(毕竟这是一个取舍的过程就看那个数据对你更重要,如果是我的话,当然在这之前你要检查一下CPU设置,如果是多核CPU的话,最好检查一下每一个CPU的利用率)。我只能说这么多了。
展开全部
不是吧,你程序代码贴出来呀
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
}
}
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();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询