关于Socket通信中多个线程同时向一个服务端口发送数据时的注意点

近几天在开发的程序里面有相关模块使用到了Socket通信,其中存在多个类似功能的模块,这些模块可能出现在同一时间段向一个服务端端口发送消息的情况,刚开始使用一个socket去通信,结果发现异常频繁出现.(事实上,当发送间隔很长,比如每200ms才会有一次发送,那么两个线程之间冲突的机会很小,基本上不会冲突.但是不冲突就不代表问题不存在,当发送间隔缩小到20ms时,异常发生的几率就非常大了,因此不管服务端的接收效率如何,我要做的都是尽可能的提升客户端的性能)

在排除了线程锁问题后,发现了问题在于,当多个线程同时进行Socket通信时,如果只为他们开了一个Socket且公用,势必造成资源冲突,因此最好为每一个线程都开一个Socket,避免相互之间产生冲突.这样做有效提高了发送效率,也不会再报异常.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值