This book discusses deeply different multi-threaded processors in a micro-architecture level and how the hardware resources could be efficiently shared among multiple thread contexts. It also addresses a broad spectrum of multi-threaded micro-architecture designs and how those designs could affect the machine throughput and power consumption. Micro-processor architects could greatly benefit from the ideas and analysis presented here.