Watson Ladd writes: With all major microprocessor manufactures choosing to go multicore rather then cranking up clock speeds getting performance gains will be a software problem. If applications aren't using multiple threads, they don't get a performance boost. But multithreading is a pain to deal with. So what is your strategy for writing multithreaded code? Is it join calculus, software transactional memory,non-interacting threads,rendezvouses,actors, or the Real Programmers choice of mutex and condition variables? Which do think will be the dominant technique over the next 30+ years?