By using this site, you agree to our Privacy Policy and our Terms of Use. Close

There are major pushes by all the big players towards easing this type of development. IBM is making tons of tools for debugging, design, etc. Sun, IBM, Cray, Microsoft are all researching new or developing new APIs/languages to ease the burden. New methodologies for accessing memory, ie transactionally. All in the hope to reduce deadlocks, data races, and any other concurrency issue. But for now developers should not think about how to make an application multi-threaded, but instead think about how to make a program scalable. Create it with the idea of independent jobs and tasks that should work with 1 thread, but also be able to make use of any number of additional cores being thrown at it. Almost like developing J2EE server side applications like servlets and EJBs, where you can just add more instances if the load gets too much and the applications are developed right.