码迷,mamicode.com
首页 > 编程语言 > 详细

Java多线程的使用

时间:2015-10-25 06:14:25      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:

Java有两种方式实现多线程。

 

 

第一种——继承Thread类,并重写run方法

 

步骤:

  1. 定义类继承Thread类;
  2. 重写子类的run方法,将线程需要执行的代码写在run方法中;
  3. 创建子类的对象,则创建了线程对象;
  4. 调用该对象的start方法,开启线程。

 

实例:

public class MyThread extends Thread() {

    @Override
    public void run() {
        // 多线程代码
    }

    // 其他代码

}
Thread t = new MyThread();
t.start();

 

 

第二种——实现Runnable接口,用该类的对象构造Thread类

 

步骤:

  1. 定义类实现Runnable接口;
  2. 实现接口中的run方法,将线程需要执行的代码写在run方法中;
  3. 用接口对象构造一个Thread对象;
  4. 调用Thread对象的start方法,开启线程。

 

实例:

public class MyClass implements Runnable() {

    public void run() {
        // 多线程代码
    }

    // 其他代码

}
MyClass m = new MyClass();
Thread t = new Thread(m);
t.start();

 

 

start方法的功能

  1. 启动了线程
  2. 让jvm调用了Thread类(或子类)对象的run方法

 

 

为什么可以有以上两种方式实现多线程?

 

对于第一种方式很容易理解。由于重写了Thread类的run方法,调用start方法启动线程后,jvm将调用子类重写的run方法;

对于第二种方式,调用start方法启动线程后,jvm将调用Thread类的run方法,其代码如下:

public void run() {
    if (target != null) {
        target.run();
    }?
}

其中target为Thread类的成员变量,类型为Runnable。在用Runnable对象构造Thread时,会使target引用该接口对象,所以执行target.run()时,实际上执行了接口对象的run方法。

Java多线程的使用

标签:

原文地址:http://www.cnblogs.com/1206ricky/p/4906723.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!