线程操作范例

来源:互联网 发布:淘宝直通车计划 编辑:程序博客网 时间:2024/06/06 22:30

设计一个线程类。可以产生3个线程对象,并分别设置3个线程的休眠时间,具体如下:

线程 休眠 线程A 休眠10秒 线程B 休眠20秒 线程C 休眠30秒

从之前的学习应该可以知道,线程的实现有两种方式,一种是继承Thread类,另一种是实现Runnable接口。而且在类中应该存在保存线程名称和休眠时间的属性。

  • 实现一–继承Thread 类
    【使用Thread类实现】
class MyThread extends Thread{    private int time;    public MyThread(String name,int time){        super(name);//设置线程名称        this.time=time;//设置休眠时间    }    public void run(){        try        {            Thread.sleep(this.time);//指定休眠时间        }        catch (Exception e)        {            e.printStackTrace();        }        System.out.println(Thread.currentThread().getName()+"线程,休眠"+this.time+"毫秒");    }}public class ExecDemo01{    public static void main(String args[])    {        MyThread my1=new MyThread("线程-A",10000);        MyThread my2=new MyThread("线程-B",20000);        MyThread my3=new MyThread("线程-C",30000);        my1.start();        my2.start();        my3.start();    }}

运行结果:

线程-A线程,休眠10000毫秒线程-B线程,休眠20000毫秒线程-C线程,休眠30000毫秒

以上程序利用了Thread类的特点,所以不用单独设置name属性。

  • 实现二–实现Runnable接口
    如果使用Runnable接口实现多线程,则不像继承Thread类一样可以直接使用Thread类的name属性,需要在类中单独定义一个name属性来保存线程的名称。
    【通过Runnable接口实现】
class MyThread implements Runnable{    private String name;    private int time;    public MyThread(String name,int time){        this.name=name;        this.time=time;    }    public void run(){        try        {            Thread.sleep(this.time);        }        catch (Exception e)        {            e.printStackTrace();        }        System.out.println(Thread.currentThread().getName()+"线程,休眠"+this.time+"毫秒");    }}public class ExecDemo02{    public static void main(String args[])    {        MyThread my1=new MyThread("线程-A",10000);        MyThread my2=new MyThread("线程-B",20000);        MyThread my3=new MyThread("线程-C",30000);        new Thread(my1).start();        new Thread(my2).start();        new Thread(my3).start();    }}

运行结果:

Thread-0线程,休眠10000毫秒Thread-1线程,休眠20000毫秒Thread-2线程,休眠30000毫秒
1 0