Boost asio priority and strand

2019-05-25 22:06发布

问题:

I want to use boost asio for a message queue. I want to do different operations on different objects. The operations have a priority. So if there is a operation oft type A none of type B should be executed. To my understanding this is what the priority example in the boost dokumentation does. But what I as well need is, if there is one operation running in one object, i do not want to execute another operation in the same object. Is this something that can be done with boost asio?

回答1:

The latter has nothing to do with priority queuing and everything with operation serialization.

You can achieve this by using the Active Object pattern. An example of Active Object using Asio is in this post: boost::asio and Active Object

You can "simply" combine this pattern with the pattern for priority queuing that you saw in the example.