Uso de threads: implementando runnable ou uma classe filha da thread?

Ao utillizar quais as vantagens e desvantagens de cada tipo de implemtentação?

Basicamente…

…se implementar Runnable a classe fica livre para extender uma classe, se extender Thread a classe não poderá extender mais nenhuma classe.

Por isso é melhor implementar Runnable.

a unica diferença é esta questão da limitação de herança então?
e do ponto de vista de desempenho?

Sim, quanto ao desempenho não há diferença.

É recomendado na maior parte dos casos implementar Runnable. Isso permite você a reciclar as Threads ou usá-las em um pool.