A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周博文 中级黑马   /  2015-8-15 08:14  /  156 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这里简单回顾一下多线程中自定义线程的两种方式:
1.继承Thread类
2.实现Runnalbe接口
第一种方式的代码:
  1. public class MyThread extends Thread {
  2.        
  3.         /*
  4.          * 继承了父类的两个构造方法
  5.          */
  6.         MyThread() {
  7.                 super();
  8.         }

  9.         MyThread(String name) {
  10.                 super(name);
  11.         }

  12.         //重写run方法
  13.         @Override
  14.         public void run() {
  15.                 int length = 10;
  16.                 //线程执行代码
  17.                 for (int i = 0; i < length; i++) {
  18.                         System.out.println(this.getName() + "正在运行");
  19.                 }
  20.         }
  21.        
  22. }
复制代码


第二种方式的代码(匿名内部类的方式):
  1. public class ThreadDemo {
  2.         public static void main(String[] args) {
  3.                 Runnable myRunnable = new Runnable(){

  4.                         @Override
  5.                         public void run() {
  6.                                 int length = 10;
  7.                                 //线程执行代码
  8.                                 for (int i = 0; i < length; i++) {
  9.                                         System.out.println(Thread.currentThread().getName() + "正在运行");
  10.                                 }
  11.                         }
  12.                        
  13.                 };
  14.                
  15.                 Thread thread = new Thread(myRunnable, "线程");
  16.                 thread.start();
  17.         }
  18. }
复制代码

相对于第一种方式来说,实现Runnable接口的方式有下面两个优点
1.避免了Java只支持单继承的特点
2.将需要执行的代码与线程对象分离,较好的体现了面向对象的特点

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马