Если вы хотите реализовать или расширить любой другой класс, тогда интерфейс Runnable
наиболее предпочтителен, если вы не хотите, чтобы какой-либо другой класс расширялся или реализовывался, тогда предпочтительнее Thread
класс
. наиболее распространенная разница -
[/g1]
Когда вы extends Thread
класс, после этого вы не можете продлить какой-либо другой класс, который вам нужен. (Как вы знаете, Java не позволяет наследовать более одного класса).
Когда вы implements Runnable
, вы можете сохранить пространство для своего класса для расширения любого другого класса в будущем или сейчас.
Предоставлено из javarevisited.blogspot.com
Эти были заметной разницей между Thread и Runnable в Java, если вы знаете какие-либо другие отличия от Thread vs Runnable, чем поделиться ими с помощью комментариев. Я лично использую Runnable over Thread для этого сценария и рекомендую использовать интерфейс Runnable или Callable на основе вашего требования.
Однако существенная разница.
Когда вы extends Thread
класс, каждый из ваших потоков создает уникальный объект и связывается с ним. Когда вы implements Runnable
, он разделяет один и тот же объект на несколько потоков.
Я решил это следующим образом:
public class MyBusinessDao {
private EntityManager em;
@Inject
private MyDao myDao;
private void setEm(EntityManager em){
this.em = em;
//and here i call the setEm method of myDao also
myDao.setEm(em);
}
...