C+中基于超时的并发队列+; 我尝试使用POSIX线程+ C++开发并发队列,其语义如下: 一些线程可能会调用push(item,timeout),如果在timetimeout之前没有添加元素,则必须拒绝添加 一些线程可能会调用pop(item,timeout),如果在timeout之前没有删除元素,则必须再次拒绝 一些线程总是调用push(item)和pop(item),这意味着它们总是可以完成——没有指定时间限制

C+中基于超时的并发队列+; 我尝试使用POSIX线程+ C++开发并发队列,其语义如下: 一些线程可能会调用push(item,timeout),如果在timetimeout之前没有添加元素,则必须拒绝添加 一些线程可能会调用pop(item,timeout),如果在timeout之前没有删除元素,则必须再次拒绝 一些线程总是调用push(item)和pop(item),这意味着它们总是可以完成——没有指定时间限制,c++,multithreading,pthreads,C++,Multithreading,Pthreads,我的问题是: 我相信对超时的线程进行优先级排序是有意义的。因此,我使用pthread调度为有超时的线程分配更高的优先级。这是我唯一能采取的方法吗 尽管线程优先级发生了变化,但必须拒绝一些超时的线程。如何将这些控制在最低限度 查看boost.asio 查看boost.asio 在调整线程优先级时应该非常小心。上述策略最明显的问题是没有超时的线程可能会挨饿。如果推送没有超时,这并不一定意味着它的消息是否被发送并不重要 最小化超时完全由应用程序负责。如果你不想让你的作者超时,确保读者足够快地发出信息

我的问题是:

  • 我相信对超时的线程进行优先级排序是有意义的。因此,我使用pthread调度为有超时的线程分配更高的优先级。这是我唯一能采取的方法吗
  • 尽管线程优先级发生了变化,但必须拒绝一些超时的线程。如何将这些控制在最低限度 查看boost.asio

    查看boost.asio


    在调整线程优先级时应该非常小心。上述策略最明显的问题是没有超时的线程可能会挨饿。如果推送没有超时,这并不一定意味着它的消息是否被发送并不重要

    最小化超时完全由应用程序负责。如果你不想让你的作者超时,确保读者足够快地发出信息


    不过,我不得不说,我觉得把定时和不定时的服务员(至少在同一边)混在一起的想法相当奇怪。您是否考虑了一些特定的用例?

    在调整线程优先级时应该非常小心。上述策略最明显的问题是没有超时的线程可能会挨饿。如果推送没有超时,这并不一定意味着它的消息是否被发送并不重要

    最小化超时完全由应用程序负责。如果你不想让你的作者超时,确保读者足够快地发出信息


    不过,我不得不说,我觉得把定时和不定时的服务员(至少在同一边)混在一起的想法相当奇怪。您是否考虑了一些特定的用例?

    +1非常简洁且切中要害的问题+1非常简洁且切中要害的问题