This is undeniable: multicore computers are here to stay.
So is this: efficient multicore programming is pretty difficult. It's not just a case of understanding pthreads.
This is arguable: the 'developer on the street' need concern him/herself with these developments.
To what extent are you concerned about having to expand your skillset for multicore? Is the software you are writing a candidate for parallelisation, and if so are you doing anything to educate yourself (if you didn't already know the techniques)? Or do you believe that the operating system will take care of most of it, the language runtime will do its bit and your application will happily sit on one core and let the others do their thing?
Are your programs typically CPU bound?
If not, forget it. It doesn't concern you, and gives your users a smoother experience without making any demands on you at all.
Cool, eh?
If you are CPU bound, and your problem is parallelizable, you might be able to leverage the multiple cores. That's the time to start worrying about it.
From the comments:
Suggestion for improving answer: give rough explanation of how to tell if your program is CPU bound. – Earwicker
CPU bound means that the thing preventing the program from running faster is a lack of computational horse-power. Compare to IO bound (or sometimes network bound). A poor choice of motherboard and processor can result in machines being memory bound as well (yes, I'm looking at you, alpha).
So you'll need to know what your program is doing from moment to moment (and how busy the machine is...) To find out on a unix-like systems run top
. On windows use the taskmanager (thanks Roboprog).
On a machine with a load less than 1 per core (i.e. your desktop machine when you're not doing much of anything), a CPU bound process will consistently have more that 50% of a processor (often more than 90%). When the load average is higher than that (i.e. you have three compiles, SETI@home, and two peer-to-peer networks running in the background) a CPU bound process will have a large fraction of (# of cores)/(load average)
.