后台线程与异步线程池
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).
我从 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).