線程操作範例

設計一個線程類。可以產生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毫秒
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章