在多线程服务器中使用Pthreads

时间:2013-05-13 20:50:08

标签: c linux pthreads client-server message-queue

我正在使用消息队列的进程程序之间编程Mulithreaded Client / Server。 服务器将处理客户端发送的消息,稍后它应该将工作交给线程继续处理它的进程。 每个客户端都有不同的消息队列。

连接第一个客户端并发送一个线程来处理它 使用pthread_join不允许我接收主线程上的新连接,导致它被阻止我该如何修复它。

  • 在主线程(或其他解决方案,如果可能)中接收新消息
  • 发送到线程以处理客户端消息及之后。
  • 返回接收新消息

1 个答案:

答案 0 :(得分:1)

很简单,

使您创建的线程与主线程分离 - 意味着您不再需要“pthread_join”它们。所以主线程是在循环中获取新连接和对现有连接的新请求,如果它是新连接,它将启动新线程,如果它是对现有连接的请求,它只是将请求添加到线程的队列中(使用锁定)在它的互联网上。)