Thread/Runnable
- Thread为一个类,Runnable为接口。在需要继承其他父类的时候只能使用Runnable。
- 继承Thread的类可以直接调用start函数
public class A extends Thread
{
public static void main(String args[])
{
A a = new A();
a.start();
}
@Override
public void run(){...}
}
Runnable需要通过Thread进行start,同时也没有Thread的一些方法,比如CurrentThread之类的
public class A implements Runnable
{
public static void main(String args[])
{
A a = new A();
Thread t = new Thread(a);
t.start();
}
@Override
public void run(){...}
}
很明显Runnable创建线程可以更好共享一个资源(这里是a对象),Thread类每创建一个线程都是一个独立的对象
Q:Thread如何共享同一资源?
A: Thread类实现了implements接口
class Thread implements Runnable
所以类比Runnable方法可以强行这样写
public class A extends Thread
{
public static void main(String args[])
{
A a = new A();
//a.start; 这里本就可以启动线程了,但是为了共享多写一步
Thread t = new Thread(a);
t.start();
}
@Override
public void run(){...}
}