A Series 40 phone can actually do many things concurrently by keeping the various subsystems of the chipset (flash memory, networking with multiple connections and buffers, IO, media playback or record, etc.) busy. While you could and in some cases (like game loops and media players) should create a dedicated thread for each of these activities, this also involves a lot of error-prone glue code that takes time and skill to write. An easier, and in most cases equally efficient way to achieve a fully concurrent architecture is to implement a worker thread model. You can examine the source code to one such library and example use cases in Tantalum project.