ros里面有关多线程如何处理消息的原理
多线程之MultiThreadedSpinner
ros里面默认是用单线程来处理任务的,单线程中,每个订阅都会将各自的callback放进一个callback queue,然后一个spinner thread不断处理这些回调,这在有些地方是不能忍受的。
订阅多个Topic,然后多个spinner thread处理。这样相当于有两个工人来处理数据,一个工人的处理一个工作的时候另一个可以处理其他工作。
订阅一个Topic,多个spinner thread处理。这样就可以并行的处理同一个callback,尽可能多的去响应callback。
订阅多个Topic,每一个subscriber一个callback queue。 这样可以保证A消息的优先级,单独享有一个工人来处理他的回调。