这里简单回顾一下多线程中自定义线程的两种方式:
1.继承Thread类
2.实现Runnalbe接口
第一种方式的代码:
- public class MyThread extends Thread {
-
- /*
- * 继承了父类的两个构造方法
- */
- MyThread() {
- super();
- }
- MyThread(String name) {
- super(name);
- }
- //重写run方法
- @Override
- public void run() {
- int length = 10;
- //线程执行代码
- for (int i = 0; i < length; i++) {
- System.out.println(this.getName() + "正在运行");
- }
- }
-
- }
复制代码
第二种方式的代码(匿名内部类的方式):- public class ThreadDemo {
- public static void main(String[] args) {
- Runnable myRunnable = new Runnable(){
- @Override
- public void run() {
- int length = 10;
- //线程执行代码
- for (int i = 0; i < length; i++) {
- System.out.println(Thread.currentThread().getName() + "正在运行");
- }
- }
-
- };
-
- Thread thread = new Thread(myRunnable, "线程");
- thread.start();
- }
- }
复制代码
相对于第一种方式来说,实现Runnable接口的方式有下面两个优点
1.避免了Java只支持单继承的特点
2.将需要执行的代码与线程对象分离,较好的体现了面向对象的特点
|
|