Correctly engineered concurrent code must live by an extra set of rules. Reads and writes from memory and access to shared resources need to be regulated so that conflicts do not arise. Additionally, threads often need to coordinate to get the job done.
In the October 2008 issue of MSDN Magazine, Joe Duffy describes some of the more common challenges to be aware of and presents advice for coping with concurrency issues in your software.
Be sure to check our MSDN Magazine archives for more articles about parallel programming and concurrency.