Java中Thread和Runnable的区别
创建新的执行线程有两种方法。一种是声明一个类作为Thread类的子类。此子类应该覆盖Thread类的run方法。然后可以分配并启动子类的实例。
创建线程的另一种方法是声明一个实现Runnable接口的类。然后该类实现run方法。然后可以分配该类的实例,在创建Thread时将其作为参数传递,并启动它。
每个线程都有一个名称用于标识。多个线程可能具有相同的名称。如果创建线程时未指定名称,则会为其生成一个新名称。
序号 | 关键 | Thread | Runnable |
---|---|---|---|
1 | 基础 | Thread是一个用于创建线程的类 | Runnable是一个用于创建线程的功能接口 |
2 | 方法 | 它有多个方法,包括start()和run() | 它只有一个抽象方法run() |
3 | 每个线程创建一个唯一的对象并与其关联 | 多个线程共享相同的对象。 | |
4 | 内存 | 需要更多内存 | 需要更少内存 |
5 | 限制 | Java不允许多重继承,因此在类扩展Thread类之后,它不能扩展任何其他类 | 如果一个类实现了Runnable接口,那么你的类可以扩展另一个类。 |
Runnable示例
class RunnableExample implements Runnable{ public void run(){ System.out.println("Thread is running for Runnable Implementation"); } public static void main(String args[]){ RunnableExample runnable=new RunnableExample(); Thread t1 =new Thread(runnable); t1.start(); } }
Thread示例
class ThreadExample extends Thread{ public void run(){ System.out.println("Thread is running"); } public static void main(String args[]){ ThreadExample t1=new ThreadExample (); t1.start(); } }
广告