Chapter 11. Testing and debugging multithreaded applications
This chapter covers
- Concurrency-related bugs
- Locating bugs through testing and code review
- Designing multithreaded tests
- Testing the performance of multithreaded code
Up to now, I’ve focused on what’s involved in writing concurrent code—the tools that are available, how to use them, and the overall design and structure of the code. But there’s a crucial part of software development that I haven’t addressed yet: testing and debugging. If you’re reading this chapter hoping for an easy way to test concurrent code, you’re going to be sorely disappointed. Testing and debugging concurrent code is hard. What I am going to give you are some techniques that will make things easier, alongside ...