class Demo extends Thread{
public void run() {
System.out.println();
} }
class Test {
public static void main(String[] args){
Demo d = new Demo();
d.start();
}
}
2、实现Runnable接口
步骤:实现 Runnable接口
复写Runnable中的run方法
创建Thread对象
创建Runnable子类对象,并作为参数传个Thread对象
用Thread调用start();
class Demo implements Runnable {
public void run() {
System.out.println();
} }
class Test {
public static void main(String[] args){
Demo d = new Demo();
Thread t = new Thread(d);
t.start();
}
}
在运行过程中啊:
其实不是真正的多线程,是cpu在一相当快的速度不断的切换每条线程。
而且我i们的多线程运行,每次的运行效果是不同的,因为cpu选择那条线程运行的顺序是不固定的也就是有随机性。
还有,我们在开启一个线程是 就会自动调用run方法哦。
这两种开启线程的方法到底哪种好呢?
其实是各有长短的:
继承Thread,可以直接使用Thread中的方法,并直接调用start()开启线程。代码简单,
但是,要是该类已经有父类了就会出现局限性。