从源码分析thread与runnable的关系
时间: 2023-06-05 13:08:40 浏览: 74
Thread和Runnable是Java中并发编程中的重要概念。Thread是实现多线程的一种方式,而Runnable是在Thread中运行的代码块。
具体来说,可以通过继承Thread类来创建线程,也可以通过实现Runnable接口来创建线程。当一个类继承Thread类时,需要实现run方法,该方法中定义了线程的执行体,即线程要执行的代码。当一个类实现了Runnable接口时,需要实现run方法,也定义了线程的执行体。
可以将Runnable对象传递给Thread类中的构造方法,从而创建一个线程对象。此时,Runnable对象中的run方法将作为线程的执行体。
因此,Thread和Runnable的关系是:Thread是一个线程,而Runnable是在线程中执行的代码块。
相关问题
thread与runnable的关系
Thread和Runnable是Java中用于实现多线程的两个接口。 Runnable定义了线程运行时要执行的代码,而Thread则负责管理线程的生命周期和执行Runnable中的代码。一个Thread可以有一个关联的Runnable对象,也可以没有。当Thread启动时,它会调用Runnable的run()方法来执行Thread所代表的任务。因此,Thread和Runnable是紧密相关的。
thread与runnable的区别
Thread和Runnable都是Java中用于实现多线程的概念,但是它们之间有一些区别。
1. Thread是Java中一个类,而Runnable是一个接口。Thread类实现了Runnable接口,所以我们可以使用Thread来实现Runnable。
2. Thread中的run()方法是线程的业务逻辑,直接通过Thread来调用run()方法会在当前线程中执行,而Runnable中只有一个run()方法,它是线程的执行体,必须通过Thread来启动。
3. Thread直接实现了Runnable接口的run()方法,而Runnable并没有start()、sleep()和join()等一些线程相关的方法。如果需要调用这些方法的话,可以通过Thread.currentThread()获取当前线程,并调用Thread类中的相应方法。
4. Thread对象只能启动一次,而Runnable对象可以被多个Thread共享。这是因为Thread在启动时会创建一个新的线程,而Runnable只是提供了一个线程执行的代码块,可以被多个Thread共享。
综上所述,Thread和Runnable都是用于实现多线程的概念,但Runnable更加灵活,可以被多个Thread共享,而Thread则提供了一些方便的线程相关的方法。所以,在实现多线程程序时,一般建议使用Runnable接口实现。