使用线程类来管理发送/接收消息

时间:2016-07-08 17:43:48

标签: c++ multithreading can-bus

我有一个类,我用它来管理负责发送和接收CAN消息的线程的创建和销毁。我不知道这是否是最佳方式,所以我正在寻找有关如何管理线程以发送消息和接收消息的建议。

基本上我希望spawnThread()为传递给它的对象生成一个线程。

的影响
spawnThread(T obj)
{
    std::thread (&T::obj, this);
}

我的期望是我会使用Thread类来管理两个单独的类SendMessage和ReceiveMessage的开始和结束线程。有没有更好的方法来处理发送和接收消息的线程?

1 个答案:

答案 0 :(得分:2)

OO中没有经理模式。一个线程可以执行连续工作,例如等待连接或执行单个镜头作业。最后一种类型通常是重用的工作线程。

现在回答这个问题。线程无法扩展。如果您有发送/接收任务,请在固定大小的工作线程池中处理它们。因此,如果工作负载扩展您的池大小,您的应用程序将反应较慢,因为新请求必须等待工作者,但它将继续工作。