我有一个类,我用它来管理负责发送和接收CAN消息的线程的创建和销毁。我不知道这是否是最佳方式,所以我正在寻找有关如何管理线程以发送消息和接收消息的建议。
基本上我希望spawnThread()为传递给它的对象生成一个线程。
的影响spawnThread(T obj)
{
std::thread (&T::obj, this);
}
我的期望是我会使用Thread类来管理两个单独的类SendMessage和ReceiveMessage的开始和结束线程。有没有更好的方法来处理发送和接收消息的线程?
答案 0 :(得分:2)
OO中没有经理模式。一个线程可以执行连续工作,例如等待连接或执行单个镜头作业。最后一种类型通常是重用的工作线程。
现在回答这个问题。线程无法扩展。如果您有发送/接收任务,请在固定大小的工作线程池中处理它们。因此,如果工作负载扩展您的池大小,您的应用程序将反应较慢,因为新请求必须等待工作者,但它将继续工作。