One could argue that threading is not strictly necessary to utilize a multicore machine. A lot of applications (think web apps) can be implemented just fine as a single thread and then scaled up by increasing the number of processes (or the number of virtual machines in this case) rather than the number of threads.
A lot of popular web frameworks follow this paradigm and I would guess that most application code running "in the cloud" is in fact single threaded.