我从 GreenRobot EventBus文档中看到,线程模式BACKGROUND
使用单个后台线程,线程模式ASYNC
使用线程池。
任何人碰巧知道线程模式使用的后台线程是否与BACKGROUND
线程模式使用的线程分开和不同ASYNC
?
我问是因为我想将BACKGROUND
线程模式用于快速事件(如本地文件访问),我想将线程模式用于慢(er)事件(如网络调用)......如果事件从未发生,ASYNC
我自然会喜欢它BACKGROUND
等待ASYNC
事件完成。
我从 GreenRobot EventBus文档中看到,线程模式BACKGROUND
使用单个后台线程,线程模式ASYNC
使用线程池。
任何人碰巧知道线程模式使用的后台线程是否与BACKGROUND
线程模式使用的线程分开和不同ASYNC
?
我问是因为我想将BACKGROUND
线程模式用于快速事件(如本地文件访问),我想将线程模式用于慢(er)事件(如网络调用)......如果事件从未发生,ASYNC
我自然会喜欢它BACKGROUND
等待ASYNC
事件完成。
在这里得到了 GreenRobot 团队的回复如下:
每个都有自己的队列(AsyncPoster、BackgroundPoster)并且都使用相同的缓存线程池ExecutorService。所以是的,他们不应该互相阻止。
但是,如果您始终使用
ASYNC
它们,它们也不会相互阻塞,因为每个都将使用自己的线程(文档甚至警告过多的并发线程)。