C - 使用 pthread 并等待返回值

标签 c multithreading pthreads

我目前正在开发一个使用 select() 来处理多个客户端的多客户端服务器。但是,当客户端发送需要大量计算的消息时,我必须使用 pthread_create() 创建一个新线程,以便我的服务器可以保持对来自客户端的其他消息的响应。为该客户端完成计算后,我需要能够向客户端返回一条消息。但我不确定如何知道该线程是否已完成以及如何获得最终结果。显然,我不能使用 pthread_join(),因为它会在运行新线程时阻塞我的服务器程序。那么 C 是否提供了一个函数,我可以使用它来获取该子线程的最终结果?我也想避免使用全局变量。

最佳答案

你可以在从主线程加入它之前检查线程是否已经完成(这将是非阻塞的)

您应该从这里了解如何操作:How do you query a pthread to see if it is still running?

否则你可能只从子线程发回答案,你可以将连接信息作为线程函数的参数传递。

关于C - 使用 pthread 并等待返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44042591/

相关文章:

c++ - 在发布版本中 boost 线程同步

c - 从第二个线程调用 pthread_kill() 时会出现段错误

multithreading - 为什么我的应用程序没有使用 Mac OS X 上的所有内核?

python - 等待用户输入或按定义的时间间隔运行的程序?

c - 我在 bash 中编译代码时遇到问题

c - 为什么可以通过重复计算来防止 nan ?

c - 在 if() 语句中使用 strcmp() 作为条件如何工作?

Javafx 应用程序在执行线程等待和通知时挂起

c - Pthread 线程创建后立即运行

c - 分割长字符串