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

创建线程的方法

时间:2016-09-23 15:21:27      阅读:265      评论:0      收藏:0      [点我收藏+]

标签:创建线程的两种方式

创建线程有2种方法

1继承Thread, 该子类应重写 Thread类的 run 方法

2实现Runnable接口,将类声明为 Thread 的子类。有单继承的局限性不常用

Thread类概述

该子类应重写 Thread 类的 run 方法。接下来可以分配并启动该子类的实例

创建线程的步骤:

     1 定义一个类继承Thread

     2 重写run方法。

     3 创建子类对象,就是创建线程对象

     4 调用start方法,开启线程并让线程执行,同时还会告诉jvm去调用run方法。


 

Runnable接口避免了单继承的局限性,所以继承Thread类的方式在这里不再赘述技术分享



Runnable接口概述

Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现。类必须定义一个run 的无参数方法

创建线程的步骤

     1、定义类实现Runnable接口。

     2、覆盖接口中的run方法。

     3、创建Thread类的对象,Runnable接口的子类对象作为参数传递给Thread类的构造函数。

     4、调用Thread类的start方法开启线程。

代码演示:

class Demo implements Runnable

{

    privateString name;

    Demo(Stringname)

    {

        this.name= name;

    }

    //覆盖了接口Runnable中的run方法。

    publicvoid run()

    {

        for(inti=1; i<=20; i++)

        {           System.out.println("name="+name+"..."+Thread.currentThread().getName()+"..."+i);

        }

    }

}

class ThreadDemo2

{

    publicstatic void main(String[] args)

    {

        //创建Runnable子类的对象。注意它并不是线程对象。

        Demo d= new Demo("Demo");

        //创建Thread类的对象,将Runnable接口的子类对象作为参数传递给Thread类的构造函数。

        Threadt1 = new Thread(d);

        Threadt2 = new Thread(d);

        //将线程启动。

        t1.start();

        t2.start();

        System.out.println(Thread.currentThread().getName()+"----->");

        System.out.println("HelloWorld!");

    }

}

 

实现Runnable的好处(相对于继承Thread)

1. 避免了单继承的局限性

2. 线程分为两部分,一部分线程对象,一部分线程任务.更加符合面向对象的思想

 

线程对象调用 run方法和调用start方法区别?

         线程对象调用run方法不开启线程。仅是对象调用方法。线程对象调用start开启线程,并让jvm调用run方法在开启的线程中执行。


创建线程的方法

标签:创建线程的两种方式

原文地址:http://wangfoye.blog.51cto.com/12003317/1855674

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