关于线程开启的两种方式
2015-03-31 12:15
225 查看
第一种方式,继承Thread类
运行结果
运行结果
这种方式也开启成功
总结:这两种方式都可以开启线程,区别是,一个实现接口,一个继承Thread类,一般都去实现接口,有两点好处:1,实现接口的run方法类可以帮你构造出来 2,Java支持单继承,但可以实现多个接口。个人想法:Thread类就好比是一个载体,都可以用,继承Thread就是直接使用,而runnable接口就相当于在中间过渡一下,得自己创建类对象(这个类对象实现runnable接口),然后放到Thread载体上,Thread就可以自动调用run方法。(总结纯属个人观点)
public class Thread extends java.lang.Thread { private String name; // 定义run方法 public void run() { for (int i = 0; i < 20; i++) { System.out.println(name + "haha"); } } // 构造函数重写构(无参) public Thread() { } // 有参数的构造函数 public Thread(String name) { this.name = name; } public static void main(String[] args) { Thread t1 = new Thread("T1"); Thread t2 = new Thread("T2"); t1.start(); t2.start(); } }
运行结果
T1haha T1haha T1haha T1haha T1haha T2haha T2haha T2haha T2haha T2haha T2haha T2haha T2haha T2haha T2haha T2haha T2haha T2haha T2haha T2haha T2haha T2haha T2haha T2haha T2haha T1haha T1haha T1haha T1haha 这种方式继承Thread类,直接通过Thread开启,这个run方法只是线程开启类内部自己调用,并不是用线程调用的也就是说线程的开启并不是Thread.run() 第二种方式实现Runnable 接口,实现这个接口会自动重写run方法
public class Hello implements Runnable { private String name; // 定义run方法 public void run() { for (int i = 0; i < 20; i++) { System.out.println(name + "haha"); } } // 构造函数重写构(无参) public Hello() { } // 有参数的构造函数 public Hello(String name) { this.name = name; } public static void main(String[] args) { Hello h1 = new Hello("h1"); Thread t1 = new Thread(h1); Hello h2 = new Hello("h2"); Thread t2 = new Thread(h2); t1.start(); t2.start(); } }
运行结果
h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha h2haha h1haha
这种方式也开启成功
总结:这两种方式都可以开启线程,区别是,一个实现接口,一个继承Thread类,一般都去实现接口,有两点好处:1,实现接口的run方法类可以帮你构造出来 2,Java支持单继承,但可以实现多个接口。个人想法:Thread类就好比是一个载体,都可以用,继承Thread就是直接使用,而runnable接口就相当于在中间过渡一下,得自己创建类对象(这个类对象实现runnable接口),然后放到Thread载体上,Thread就可以自动调用run方法。(总结纯属个人观点)
相关文章推荐
- 创建和开启线程的两种方式
- java基础关于创建线程的两种方式
- 开启线程的两种方式
- Java中线程实现的两种方式例程
- java多线程总结一: 线程的两种创建方式及优劣比较
- 常用的两种线程传参方式
- 关于网页传输GET 和 POST 两种方式的研究(2)
- java 创建线程 的两种方式
- 关于两种运行sh的方式: ./myscript.ksh and . ./myscript.ksh
- java多线程总结一:线程的两种创建方式及优劣比较
- java多线程总结一: 线程的两种创建方式及优劣比较
- 开始一个线程两种方式的区别
- java多线程总结一:线程的两种创建方式及优劣比较
- Java第七课 Java的多线程程序进程和线程的概念,实现多线程的两种方式,线程同步的原理,线程的死锁,运用wait和notify来实现producer - consumer关系,线程终止的两种情况。
- java多线程总结一:线程的两种创建方式及优劣比较
- 两种线程方式实现进度条
- 创建线程两种方式的比较
- 关于ADO.NET下数据的两种访问方式
- Runnable和Thread两种方式创建线程的比较
- 线程的两种创建方式及优劣比较