Threading is a powerful concept growing more critical for application development. Modern computers aren’t always faster than computers from even four years ago. Instead, computer manufacturers focus on packing more CPU’s into a smaller package with the idea that workload split across many chips will run on a magnitude faster than the fastest chip. This performance gain can only be realized when an application is intentionally designed to take advantage of the multiple cores. As you begin working with threads, however, you will quickly realize that you must design your applications on a thread and a prayer!
Today’s article will be a little different from previous articles I have written. Instead of explaining what a thread is and how to use it I will be reviewing the various issues I have encountered while working with multiple threads and how I have resolved those issues. I trust that today’s article will help others who have encountered these same issues while developing multi-threaded applications.