后台线程与异步线程池

Background thread vs Async thread pool

我从 GreenRobot EventBus documentation 看到线程模式 BACKGROUND 使用单个后台线程,线程模式 ASYNC 使用线程池。

有谁知道 BACKGROUND 线程模式使用的后台线程是否与 ASYNC 线程模式使用的线程不同?

我问是因为我想对快速事件(如本地文件访问)使用 BACKGROUND 线程模式,并且我想对慢(呃)事件(如网络调用)使用 ASYNC 线程模式)...如果 BACKGROUND 事件从不等待 ASYNC 事件完成,我自然会喜欢它。

得到GreenRobot团队here的回复如下:

Each has its own queue (AsyncPoster, BackgroundPoster) and both use the same cached thread pool ExecutorService. So yes, they should not block each other.

However, if you always use ASYNC those will also not block each other as each will use its own thread (the docs even warn about too many concurrent threads).