【java基础】多线程——实现多线程的两种方式

1、继承 Thread 类 线程的程序代码必须编写在 run()方法内, run() 方法是定义在 Thread 类里的一个方法, 因此把线程的程序代码编写在 run() 方法内,事实上所做的就是重写 Thread 类中 run()...

1、继承 Thread 类

线程的程序代码必须编写在 run()方法内, run() 方法是定义在 Thread 类里的一个方法, 因此把线程的程序代码编写在 run() 方法内,事实上所做的就是重写 Thread 类中 run() 方法的操作。

class  类名 extends Thread {  //从 Thread 类继承出子类    
  属性;
  方法...
  修饰符run() {
        //以线程处理的程序;
    }
}

要启动线程必须调用 Thread 类之中的 start()方法,而调用了 start()方法,也就是调用了重写的 run()方法。


public class threadDemo extends Thread { //继承 Thread 类,此类实现了多线程
public void run() //run()方法中放置要以线程实现的代码
{
for (int i = 0; i < 10; i++) {
System.out.println("第一个线程");
}
}
}
public class Test {
public static void main(String[] args) {
new threadDemo().start(); //调用 Thread 类的 start()方法,实际上是调用 run()方法
//另一个循环输出:
for (int i = 0; i < 10; i++) {
System.out.println("第二个线程");
}
}
}


2、实现 Rannable 接口

JAVA 程序中一个子类只能有一个父类,在 Java 中如果一个类继承了某一个类,同时又想采用多线程技术时, 就不能通过继承 Thread 类产生线程,因为 Java 不允许多继承, 这时就要用通过实现 Runnable 接口来创建线程了。


class类名 implements Runnable {//实现 Runnable 接口
    属性;
    方法...
    修饰符 run() { //重写 Runnable 接口的 run()方法
        //以线程处理的程序;
    }
}


public class MultiThread implements Runnable { //通过实现 Runnable 接口,实现多线程
public void run() //重写 Thread 类的 run()方法
{
for (int i = 0; i < 10; i++) {
System.out.println("Thread-One");
}
}
}

public class Test {
public static void main(String[] args) {
MultiThread thread_1 = new MultiThread(); //产生 Runnable 接口子类的实例化对象
new Thread(thread_1).start(); //通过 Runnable 接口子类对象实例化 Thread 类的对象调用
//start()方法启动多线程
//循环输出:
for (int j = 0; j < 10; j++) {
System.out.println("Thread-Two");
}
}
}

为什么实现了 Runnable 接口还需要调用 Thread 类中的 start()方法才能启动多线程呢?
在Runnable 接口中并没有 start()方法,所以一个类实现了 Runnable 接口也必须用 Thread 类中的 start()方法来启动多线程。

在Thread 类之中,有这样一个构造方法:
public Thread(Runnable target)
可以将一个 Runnable 接口的实例化对象作为参数去实例化 Thread 类对象。
在实际的开发中,提倡尽可能去使用 Runnable 接口去实现多 线程机制。


  • 发表于 2017-11-13 18:05
  • 阅读 ( 1461 )
  • 分类:Java

0 条评论

请先 登录 后评论
不写代码的码农
伪摄影

22 篇文章

作家榜 »

  1. 威猛的小站长 124 文章
  2. Jonny 65 文章
  3. 江南烟雨 36 文章
  4. - Nightmare 33 文章
  5. doublechina 31 文章
  6. HJ社区-肖峰 29 文章
  7. 伪摄影 22 文章
  8. Alan 14 文章