多线程 局部变量值被异常改变
我用多线程并行上传文件,每个线程都去调用storage_upload_by_filebuff函数进行上传,但是会提示:ERROR - send data to storage server 192.168.122.1:23422,-1 fail, errno: 9, error info: Bad file descriptor,我知道是socket描述符被异常改变了,socket=-1了,请问这是怎么回事?每个线程的局部变量不是私有的吗?会被其他线程改变?救救我吧!好几天了
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
回复 1# cnyxj
局部变量的确是线程安全的。
tracker server和storage server变量不能跨线程共享的。
tracker server是全局的,获取tracker连接时,使用函数tracker_get_connection_ex
应该是使用函数tracker_get_connection_r.
每个线程单独连接tracker server.