Guess how many times the word "thread" shows up in the C++ Language Standard.
That’s right. There’s no direct support in the language proper for multithreaded programming. Oh sure, keywords like volatile help programmers write correct C++ multithreaded code, and there are many decent threading classes available for C++. But professional game programmers live in this weird netherworld where we pretty much have to write multithreaded code (particularly for multi-core processors like Xbox 360 and Cell) and we yet don’t have C++ language-level primitives that provide multithreaded abstrations and protect us from synchronization and deadlock issues.
The good thing is that many really smart people are thinking about this problem. You can get a glimpse into what C++ with concurrency might look like by checking out this excellent article by Eric Niebler.
The bad thing is that official standardization is still a ways off. Although there’s good reason to believe we’ll have a new C++ Standard before the decade is out, it will inevitably take compilers a while to catch up. In the meantime, the struggle to write both correct and efficient multithreaded games will continue.