2017-01-13 1 views
0

Ich sehe vom GreenRobot EventBus documentation, dass mit Thread-Modus BACKGROUND ein einzelner Hintergrund Thread verwendet wird und mit Thread-Modus ASYNC ein Thread-Pool verwendet wird.Hintergrund Thread vs Async-Thread-Pool

Jeder zufällig wissen, ob der Hintergrund Thread von der BACKGROUND Thread-Modus getrennt und deutlich von den Threads verwendet von der ASYNC Thread-Modus verwendet werden?

Ich frage, weil ich BACKGROUND Thread-Modus für schnelle Ereignisse (wie lokalen Dateizugriff) verwenden möchte und ich ASYNC Thread-Modus für langsame (er) Ereignisse (wie Netzwerkanrufe) verwenden möchte ... und natürlich würde ich mag es, wenn BACKGROUND Ereignisse nie auf ASYNC Ereignisse warten, um abzuschließen.

Antwort

0

Haben Sie eine Antwort vom Greenrobot-Team here wie folgt:

Jeder seine eigene Warteschlange hat (AsyncPoster, BackgroundPoster) und beide verwenden die gleiche Cache gespeicherten Thread-Pool ExecutorService. Also ja, sollten sie nicht gegenseitig blockieren.

Wenn Sie jedoch immer ASYNC verwenden diese werden auch nicht gegenseitig blockieren da jeder seinen eigenen Thread verwenden (die Dokumentation auch über too many concurrent threads warnen).