This course explains how threads should and should not be used to architect scalable, responsive, and fast applications and components. Scalable applications are those that can handle enormous load such as a server processing many thousands of requests concurrently. Responsive applications are those that remain attentive to the end-user giving immediate feedback. Throughout all the videos, guidelines and best practices are shown along with many demos that prove the concepts. In addition, many clever techniques are presented that can simplify your code while improving its efficiency. The videos also discuss many patterns in common use today that should be avoided and why.