gpt4 book ai didi

c - 在这种情况下处理 pthread 通信/信号的正确方法是什么?

转载 作者:行者123 更新时间:2023-11-30 15:55:05 26 4
gpt4 key购买 nike

我正在编写一个小型客户端/服务器演示,用于在同行之间共享文件。一旦对等点从主服务器获取 IP 地址列表,主线程就会为每个相应的文件创建一个线程。该过程如下所示:

  • 主线程从服务器获取文件列表
  • 为每个文件创建线程(分离)
  • 在每个创建的线程中,连接到指定的/与文件关联的对等点
  • 线程分块下载文件
  • 线程宣布文件已完成

当尝试“查询”线程时,我的问题就出现了。在每个线程中,我跟踪传输的进度。在我的主线程中,我希望用户能够看到所有正在发生的传输的进度。最好的方法是什么?我正在考虑使用 pthread_kill 分别向每个线程发送信号,尽管似乎应该有更好的方法。如果有人有想法,我很想听听。

最佳答案

当您创建线程时,您可以添加一个 void * 来指向您想要的任何内容。在您的示例中,您可以声明一个进度值数组,并将其中一个的地址传递给您创建的每个线程,让线程在需要时执行简单的更新,并且您的主线程可以定期检查这些值。

如果您已经在使用该参数进行某些操作,则需要创建一个包含该新值以及您已在使用的任何内容的结构,并传递它的地址,以便线程获得所需的一切。

关于c - 在这种情况下处理 pthread 通信/信号的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12537579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com