欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JAVA多線程Thread和Runnable的實(shí)現(xiàn)

 更新時(shí)間:2013年03月17日 12:11:01   作者:  
java中實(shí)現(xiàn)多線程有兩種方法:一種是繼承Thread類,另一種是實(shí)現(xiàn)Runnable接口。

java中只允許單一繼承,但允許實(shí)現(xiàn)多個(gè)接口,因此第二種方法更靈活。

復(fù)制代碼 代碼如下:

/**
     * 運(yùn)行繼承java.lang.Thread類定義的線程
     */
    public void startOne() {
        // 創(chuàng)建實(shí)例
        OneThread oneThread = new OneThread();
        // 啟動(dòng)線程ThreadA
        oneThread.startThreadA();
        try {
            // 設(shè)置線程休眠1秒
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        // 停止線程,此處為什么不用stop()方法,因?yàn)樵摲椒ㄒ呀?jīng)廢棄,但可以用在死鎖。
        oneThread.stopThreadA();
    }

復(fù)制代碼 代碼如下:

/**
     * 運(yùn)行實(shí)現(xiàn)Runnable接口定義的線程
     */
    public void startTwo() {
        // 創(chuàng)建實(shí)例
        Runnable runnable = new TwoThread();
        // 將實(shí)例放入到線程中
        Thread threadB = new Thread(runnable);
        // 啟動(dòng)線程
        threadB.start();
    }

復(fù)制代碼 代碼如下:

// 繼承Thread類定義線程
class OneThread extends Thread {
    private boolean running = false;

    public void start() {
        this.running = true;
        super.start();
    }
    public void run() {
        int i = 0;
        try {
            while (running) {
                System.out.println("繼承Thread類定義線程程序體......" + i++);
                Thread.sleep(200);
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    public void startThreadA() {
        System.out.println("啟動(dòng)繼承Thread類定義線程");
        this.start();
    }
    public void stopThreadA() {
        System.out.println("關(guān)閉繼承Thread類定義線程");
        this.running = false;
    }
}

復(fù)制代碼 代碼如下:

// 實(shí)現(xiàn)Runnable接口定義線程
class TwoThread implements Runnable {
    private Date runDate;

    public void run() {
        System.out.println("實(shí)現(xiàn)Runnable接口定義線程程序體......");
        this.runDate = new Date();
        System.out.println("線程啟動(dòng)時(shí)間......" + runDate);
    }

復(fù)制代碼 代碼如下:

public static void main(String[] args) {
        // 實(shí)例化對象
        ThreadStartAndStop threadStartAndStop = new ThreadStartAndStop();
        threadStartAndStop.startOne();
        threadStartAndStop.startTwo();
    }

 啟動(dòng)繼承Thread類定義線程
繼承Thread類定義線程程序體......0
繼承Thread類定義線程程序體......1
繼承Thread類定義線程程序體......2
繼承Thread類定義線程程序體......3
繼承Thread類定義線程程序體......4
關(guān)閉繼承Thread類定義線程
實(shí)現(xiàn)Runnable接口定義線程程序體......
線程啟動(dòng)時(shí)間......Fri Mar 15 12:56:57 CST 2013

相關(guān)文章

  • Java Vector和ArrayList的異同分析及實(shí)例講解

    Java Vector和ArrayList的異同分析及實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于Java Vector和ArrayList的異同分析及實(shí)例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-01-01
  • 簡單了解java自定義和自然排序

    簡單了解java自定義和自然排序

    這篇文章主要介紹了簡單了解java自定義和自然排序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 詳解JAVA動(dòng)態(tài)代理

    詳解JAVA動(dòng)態(tài)代理

    這篇文章主要介紹了JAVA動(dòng)態(tài)代理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java使用list集合remove需要注意的事項(xiàng)(使用示例)

    Java使用list集合remove需要注意的事項(xiàng)(使用示例)

    List集合的一個(gè)特點(diǎn)是它其中的元素是有序的,也就是說元素的下標(biāo)是根據(jù)插入的順序來的,在刪除頭部或者中間的一個(gè)元素后,后面的元素下標(biāo)會(huì)往前移動(dòng),本文給大家介紹Java使用list集合remove需要注意的事項(xiàng),感興趣的朋友一起看看吧
    2022-01-01
  • Java?集合框架?Queue?和?Stack?體系

    Java?集合框架?Queue?和?Stack?體系

    這篇文章主要介紹了Java?集合框架Queue和Stack體系,Stack?繼承自Vector,并拓展了五個(gè)允許將容器視為棧結(jié)構(gòu)的操作,Queue接口定義了隊(duì)列的能力,它繼承自Collection,更多相關(guān)內(nèi)容需要得小伙伴可以參考一下
    2022-06-06
  • Java多線程、進(jìn)度條實(shí)現(xiàn)賽馬實(shí)驗(yàn)的示例代碼

    Java多線程、進(jìn)度條實(shí)現(xiàn)賽馬實(shí)驗(yàn)的示例代碼

    這篇文章主要介紹了Java多線程、進(jìn)度條實(shí)現(xiàn)賽馬實(shí)驗(yàn)的示例代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Java GUI進(jìn)階之流式布局管理器FlowLayout專項(xiàng)精講

    Java GUI進(jìn)階之流式布局管理器FlowLayout專項(xiàng)精講

    FlowLayout-流式布局管理器,按水平方向依次排列放置組件,排滿一行,換下一行繼續(xù)排列。排列方向(左到右 或 右到左)取決于容器的componentOrientation屬性
    2022-04-04
  • SpringBoot實(shí)現(xiàn)反向代理的示例代碼

    SpringBoot實(shí)現(xiàn)反向代理的示例代碼

    本文主要介紹了SpringBoot實(shí)現(xiàn)反向代理的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Java的Junit測試框架中的其他注解說明

    Java的Junit測試框架中的其他注解說明

    這篇文章主要介紹了Java的Junit測試框架中的其他注解說明,JUnit是一個(gè)開源的java單元測試框架,它是XUnit測試體系架架構(gòu)的一種體現(xiàn),
    是Java語言事實(shí)上的標(biāo)準(zhǔn)單元測試庫,需要的朋友可以參考下
    2023-10-10
  • spring security自定義登錄頁面

    spring security自定義登錄頁面

    在項(xiàng)目中我們肯定不能使用Spring自己生成的登錄頁面,而要用我們自己的登錄頁面,下面通過本文給大家分享spring security自定義登錄頁面的實(shí)現(xiàn)方法,一起看看吧
    2017-09-09

最新評論