相反,我想要一个线程池,其中空闲线程可以从队列中获取一些工作量.需要注意这一点,以便按顺序传递给定状态机的事件.据推测,开始的地方将涉及实现调度程序和可能的FifoWorker概念,以分别执行我想要的替代fifo_scheduler和fifo_worker类的 *** 作.但是,我想知道这个问题是否已经被其他人解决了,或者我是否只是提出了错误的问题.
解决方法 回答我自己的问题,现在我有时间考虑一下.这很简单:>每个状态机都有自己的fifo_scheduler
>当我们希望状态机开始运行时,会向线程池发布一个函数:
>检查scheduler.terminated()并停止,如果是这样.
>运行调度程序(n),其中n是某些与实现相关的值.我们需要这样做以防止饥饿.
>将自己发布回线程池.
这也确保了事件按顺序传递而无需借助其他方法.
这不是最好的答案,因为服务功能将占用队列中的空间,即使没有工作要做也可以调用.
总结以上是内存溢出为你收集整理的c – 如何使用boost :: statechart在固定数量的线程上复用许多异步状态机?全部内容,希望文章能够帮你解决c – 如何使用boost :: statechart在固定数量的线程上复用许多异步状态机?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)