多线程 局部变量值被异常改变

发布于 2022-10-15 06:27:05 字数 240 浏览 19 评论 0

我用多线程并行上传文件,每个线程都去调用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

浪菊怪哟 2022-10-22 06:27:05

回复 1# cnyxj

局部变量的确是线程安全的。
tracker server和storage server变量不能跨线程共享的。
tracker server是全局的,获取tracker连接时,使用函数tracker_get_connection_ex

莳間冲淡了誓言ζ 2022-10-22 06:27:05

应该是使用函数tracker_get_connection_r.

她如夕阳 2022-10-22 06:27:05

每个线程单独连接tracker server.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文