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.