使用线程 class 管理 sending/receiving 消息

Using thread class to manage sending/receiving messages

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

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

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

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

OO 中没有管理器模式这样的东西。一个线程要么做一个连续的工作,比如等待连接,要么做一个单一的工作。最后一种类型通常是重复使用的工作线程。

现在进入问题。线程不缩放。如果您有 send/receive 个任务,请在固定大小的工作线程池中处理它们。因此,如果工作负载扩展了您的池大小,您的应用程序将反应较慢,因为新请求必须等待工作人员,但它会继续工作。