2012-11-09 19 views
11

Was sind die Vor- und Nachteile der Verwendung von ScheduledExecutorService/Timer/Handler? Wie ich in Android anstelle von Timer verstehe, muss es Handler verwenden, aber was ist mit ScheduledExecutorService?ScheduledExecutorService vs Timer vs Handler

Wie ich verstehe Handler und ScheduledExecutorService ist nur für relative Zeit, oder?

+2

http://stackoverflow.com/questions/2333680/android-schedule-action – assylias

+2

Hauptunterschied zwischen Timer und ScheduledExecutor: Letzterer kann mehrere Threads verwenden (über einen Thread-Pool) und entfernen Sie das Risiko einer Task verzögert die nächste one: http://stackoverflow.com/questions/409932/java-timer-vs-executorservice – assylias

+0

Dies zeigt eine gute Erklärung http://StackOverflow.com/A/6558821/1016544 –

Antwort

3

Alle drei erlauben Ihnen, Aufgaben auf einem anderen (z. B. Nicht-Haupt) -Thread auszuführen. Mit der Handler können Sie eine Nachricht verwenden, die das Actor-Muster zur sicheren Kommunikation zwischen Threads übergibt. Es erlaubt Ihnen nicht, Timing/Verzögerungen/etc.

Eine ScheduledExecutorService ist eine sehr allgemeine Threading Management-Lösung. Sie initialisieren es mit einer bestimmten Anzahl an Worker-Threads und geben ihm dann Arbeitseinheiten. Sie können Arbeitseinheiten verzögern/Zeit und wiederholen.

Die Timer Klasse verfügt über eine einfache API, die einem ScheduledExecutorService für die einmalige Verwendung von einem Thread ähnelt. Die offizielle API schlägt vor, diese Klasse nicht zu verwenden, sondern stattdessen einen eigenen ScheduledExecutor zu erstellen.

+2

Sie können Handler # postDelayed (Runnable, Intervall) – siliconeagle

Verwandte Themen