java multithreading runnable java-threads

java - ¿Por qué existe ''Thread Thread'' cuando ''implementa Runnable'' es el ganador en todos los casos



multithreading java-threads (2)

En los últimos 20 años o más desde que se lanzó Java 1.0, lo que se considera un buen patrón de diseño ha cambiado. Sin embargo, Java está comprometido con la compatibilidad con versiones anteriores, lo que significa que el código antiguo que podría usar patrones de diseño deficientes aún funcionará.

Una de mis mascotas odias es StringBuffer por lo que nunca fue una buena idea hacer que su método estuviera sincronizado, fue reemplazado hace más de diez años, pero desafortunadamente los desarrolladores no pueden usarlo hoy, e incluso los nuevos lo usan, aunque lo fue. En desuso mucho antes de que comenzaran a usar Java.

Esta pregunta ya tiene una respuesta aquí:

Sé que se prefiere implements Runnable en lugar de extends Thread en los extends Thread de Java, ya que nos permite extender alguna otra clase si es necesario. Pero si este es el caso, extends Thread también tiene sus propias ventajas sobre los implements Runnable y, de ser así, ¿cuáles son estas ventajas?


Porque a veces (casi nunca, pero a veces) quieres poder cambiar el comportamiento básico de Thread .

Ahí es cuando necesitarás extenderlo.

Puede cambiarlo anulando un método de la clase Thread , no puede hacerlo implementando uno de Runnable .