一些小知识小经验(使用java或者c语言实现的socket服务器的优化技巧)


(两个月以前,我参加了某个比赛。做了个跟socket服务器有关的项目。比赛完后本来就想立刻写个博文总结一下我的技术经验的,结果拖延症晚期一从紧张的环境中解放就开始各种浪……直到现在才有点心情敲文字)

(我做的东西很简单。跟微信端,网页前端,硬件开发板,后台服务器都有关。我负责的是硬件开发板和后台服务器的代码部分,我尝试着都稍微总结一下,贴点代码吧……)

(先从后台服务器开始吧,这点的内容比较少也比较有用)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    怎么使用java实现socket通信,这个用关键词一搜,我想网上应该就有一大堆现成的代码了吧,所以这些基础的基础我就不讲了。我以问题作为标题的形式总结一下我在实现服务器过程中磨蹭出来的几个小经验。

(对了,我使用的是阿里云10块钱一个月的学生服务器,操作环境是windows server 2008,搭了java、Apache、MySQL、PHP的环境。)

(推荐一个调试socket时很好用的工具:SocketTool 。免安装,只有一个exe文件,轻便简洁。使用方法打开就知道了。)


①小经验:服务器在与客户端建立连接之后,CPU使用率总是100%怎么办?

    原因:建立连接后启动新的线程,如果线程中有简单粗暴的不含阻塞的while(1)循环,会持续占用CPU,导致CPU占用率极高。

    解决:在while(1)的大循环中插入一句sleep(1),即阻塞1毫秒,java线程内则使用Thread.sleep()的静态方法阻塞线程。效果奇佳如图(用C语言演示)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值