【问题标题】:Using Pthreads in a Mulithreaded Server在多线程服务器中使用 Pthread
【发布时间】:2013-05-08 00:12:47
【问题描述】:

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

在建立第一个客户端的连接并发送一个线程来处理它之后 使用 pthread_join 不允许我接收主线程上的新连接,因为它被阻止了我该如何修复它。

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

【问题讨论】:

  • 你为什么打电话给pthread_join?

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


【解决方案1】:

很简单,

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

【讨论】:

    猜你喜欢
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    相关资源
    最近更新 更多