Events vs. Threads
Events avoid concurrency as much as possible, threads embrace:
- Easy to get started with events: no concurrency, no preemption, no synchronization, no deadlock.
- Use complicated techniques only for unusual cases.
- With threads, even the simplest application faces the full complexity.
Debugging easier with events:
- Timing dependencies only related to events, not to internal scheduling.
- Problems easier to track down: slow response to button vs. corrupted memory.