This chapter discusses the perils that await the unwary programmer once threads come on the scene. The bugs I’m discussing can be nasty ones to find because they’re often timing related. They tend to manifest once a month (or once a year), not every time the program executes, and they can be almost impossible to duplicate when they do occur. (The actions that caused the program to hang once might not cause it to hang all the time, and in fact, might have been working fine for the last year.) This unpredictability makes it all the more important to recognize and stamp out these bugs early in the design process.
KeywordsBlack Hole Test Class Race Condition Multithreaded Programming Spelling Checker
Unable to display preview. Download preview PDF.