当前位置: 技术问答>linux和unix
如果两个线程操作同一个Socket,一个线程recv,另一个send。这样会不会导致程序莫名其妙的退出
来源: 互联网 发布时间:2015-12-03
本文导语: 如果两个线程操作同一个Socket,一个线程recv,另一个send。这样会不会导致程序莫名其妙的退出 ? 我的程序莫名其妙的结束了,没有core文件, unlimit -c unlimited也做了 现在怀疑是两个线程同时 操作socket导致 高手帮帮忙吧 ...
如果两个线程操作同一个Socket,一个线程recv,另一个send。这样会不会导致程序莫名其妙的退出 ?
我的程序莫名其妙的结束了,没有core文件,
unlimit -c unlimited也做了
现在怀疑是两个线程同时 操作socket导致
高手帮帮忙吧
|
那就可能是你的程序被SIGPIPE中断了。即对方已经将socket关闭,你却仍然再往socket里面写数据。
|
做好同步工作
|
最好不要“同时”接收发送,一般不建议把一个Socket放到2个线程中,很容易出莫名其妙的问题。
如果一定要放2个线程那是你程序设计的问题了。
如果一定要放2个线程那是你程序设计的问题了。
|
加锁应该没有问题。一般SEND,不要线程