Using a subclass of NSThread allows implementation of more complex threads (for example, to allow passing more arguments or to encapsulate all related helper methods in one
class). Additionally, the NSThread instance can be saved in a property or variable and can be queried about its current state ...