最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java之Runnable啟動(dòng)線程的使用方式

 更新時(shí)間:2024年01月16日 10:12:02   作者:.二丫.  
這篇文章主要介紹了Java之Runnable啟動(dòng)線程的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Runnable啟動(dòng)線程的使用

實(shí)現(xiàn)線程的方式

Runnable接口

  • Runnable 接口的實(shí)現(xiàn)類(lèi)的線程 通過(guò)Thread類(lèi)啟動(dòng)
  • 需要把實(shí)現(xiàn)類(lèi)對(duì)象傳入Thread類(lèi)的構(gòu)造方法中 然后通過(guò)Thread的start方法啟動(dòng)該Runnable實(shí)現(xiàn)類(lèi)的線程。
  • Runnable實(shí)現(xiàn)類(lèi)線程 只需要?jiǎng)?chuàng)建一個(gè)對(duì)象 然后傳入多個(gè)Thread類(lèi)構(gòu)造方法中,通過(guò)多個(gè)Thread對(duì)象去啟動(dòng)多個(gè)線程。

Runnable接口的優(yōu)點(diǎn)

  • 可以避免由于Java單繼承帶來(lái)的局限性(不占繼承名額)
  • 適合多個(gè)相同程序的代碼去處理同一個(gè)資源的情況
  • 把線程同程序的代碼,數(shù)據(jù)有效分離,較好的體現(xiàn)了面向?qū)ο蟮脑O(shè)計(jì)思想。

Demo.java 文件

public class Demo {

    public static void main(String[] args) {
//        MyThread m1 = new MyThread("張三");
//        MyThread m2 = new MyThread("李四");
//
//        m1.start();
//        m2.start();

        MyRunnable1 m = new MyRunnable1();
        Thread t1 = new Thread(m,"張三");
        Thread t2 = new Thread(m,"李四");

        t1.start();
        t2.start();


    }
    public static void main1(String[] args) {
        //MyRunnable myRunnable = new MyRunnable("張三");//這種給線程命名的方式不可行
        MyRunnable myRunnable = new MyRunnable();

//        Thread t1 = new Thread(myRunnable);//將Runnable類(lèi)對(duì)象傳入Thread類(lèi)對(duì)象的構(gòu)造方法中
//        Thread t2 = new Thread(myRunnable);

        Thread t1 = new Thread(myRunnable,"張三");//通過(guò)Thread方法來(lái)設(shè)置自己線程的名字
        Thread t2 = new Thread(myRunnable,"李四");

        t1.start();
        t2.start();

    }
}

MyThread.java 文件

public class MyThread extends Thread {
    public MyThread(){

    }

    public MyThread(String name){
        super(name);
    }

    //int num = 50;//減少的時(shí)候是張三和李四分別減少50
    public static int num = 50;//減少的時(shí)候是張三和李四共同減少50一個(gè)數(shù)字

    @Override
    public void run() {
        while(num > 0 ){
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName()+":正在減---->"+(num--));
        }
    }
}

MyRunnable.java文件

public class MyRunnable implements Runnable {
    public MyRunnable() {

    }

    public MyRunnable(String name){//我們自己寫(xiě)的 有參數(shù)的構(gòu)造器 但是無(wú)法給我們的線程重新命名
        //Thread.currentThread().setName(name);
        //System.out.println(Thread.currentThread().getName());//這句代碼是主線程執(zhí)行的所以無(wú)法給子線程改名字
    }

    @Override
    public void run() {
        for (int i = 0; i < 50; i++) {
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName()+"正在數(shù)--->"+i);
        }
    }
}

MyRunnable1.java文件

public class MyRunnable1 implements Runnable {

    public int num = 50;//不需要加static

    @Override
    public void run() {
        while(num > 0){
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName()+"--->正在減"+(num--));
        }
    }
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 作為Java程序員應(yīng)該掌握的10項(xiàng)技能

    作為Java程序員應(yīng)該掌握的10項(xiàng)技能

    這篇文章主要介紹了作為Java程序員應(yīng)該掌握的10項(xiàng)技能,包括java的知識(shí)點(diǎn)與相關(guān)的技能,對(duì)于java的學(xué)習(xí)有不錯(cuò)的參考借鑒價(jià)值,需要的朋友可以參考下
    2015-05-05
  • SpringBoot自定義轉(zhuǎn)換器用法詳解

    SpringBoot自定義轉(zhuǎn)換器用法詳解

    在SpringBoot中,轉(zhuǎn)換器用于將一個(gè)類(lèi)型的值轉(zhuǎn)換為另一個(gè)類(lèi)型,這在處理HTTP請(qǐng)求參數(shù)、響應(yīng)結(jié)果、表單數(shù)據(jù)等方面非常有用,SpringBoot提供了多種方式來(lái)定義和使用轉(zhuǎn)換器,本文給大家介紹了
    如何使用SpringBoot自定義轉(zhuǎn)換器,需要的朋友可以參考下
    2023-08-08
  • Java中的移位運(yùn)算符使用及原理詳解

    Java中的移位運(yùn)算符使用及原理詳解

    在 Java 中,移位運(yùn)算符用于對(duì)二進(jìn)制數(shù)進(jìn)行位移操作,它們可以將一個(gè)數(shù)的所有位向左或向右移動(dòng)指定的位數(shù),本文小編將給大家詳細(xì)的介紹一下Java移位運(yùn)算符,需要的朋友可以參考下
    2023-09-09
  • Java程序執(zhí)行的全流程

    Java程序執(zhí)行的全流程

    這篇文章主要介紹了Java程序執(zhí)行的全流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 淺談StringEntity 和 UrlEncodedFormEntity之間的區(qū)別

    淺談StringEntity 和 UrlEncodedFormEntity之間的區(qū)別

    這篇文章主要介紹了StringEntity 和 UrlEncodedFormEntity之間的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 繼承WebMvcConfigurationSupport后自動(dòng)配置不生效及如何配置攔截器

    繼承WebMvcConfigurationSupport后自動(dòng)配置不生效及如何配置攔截器

    這篇文章主要介紹了繼承WebMvcConfigurationSupport后自動(dòng)配置不生效及如何配置攔截器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Nacos簡(jiǎn)介最新收藏版

    Nacos簡(jiǎn)介最新收藏版

    Nacos?是阿里巴巴推出來(lái)的一個(gè)新開(kāi)源項(xiàng)目,這是一個(gè)更易于構(gòu)建云原生應(yīng)用的動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺(tái),Nacos?幫助您更敏捷和容易地構(gòu)建、交付和管理微服務(wù)平臺(tái),對(duì)Nacos相關(guān)基本知識(shí)感興趣的朋友一起看看吧
    2023-08-08
  • 一文盤(pán)點(diǎn)五種最常用的Java加密算法

    一文盤(pán)點(diǎn)五種最常用的Java加密算法

    大家平時(shí)的工作中,可能也在很多地方用到了加密、解密,比如:支付功能等,所以本文為大家盤(pán)點(diǎn)了Java中五個(gè)常用的加密算法,希望對(duì)大家有所幫助
    2023-06-06
  • springboot整合SSE的項(xiàng)目實(shí)踐

    springboot整合SSE的項(xiàng)目實(shí)踐

    SSE是一種可以主動(dòng)從服務(wù)端推送消息的技術(shù),本文主要介紹了springboot整合SSE的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • SpringSecurity實(shí)現(xiàn)多種身份驗(yàn)證方式

    SpringSecurity實(shí)現(xiàn)多種身份驗(yàn)證方式

    本文主要介紹了SpringSecurity實(shí)現(xiàn)多種身份驗(yàn)證方式,包括表單的認(rèn)證、HTTP基本認(rèn)證、HTTP摘要認(rèn)證、證書(shū)認(rèn)證、OpenIDConnect或OAuth2.0的認(rèn)證、記住我功能和LDAP認(rèn)證,感興趣的可以了解一下
    2025-03-03

最新評(píng)論

邢台市| 宾川县| 凤庆县| 南康市| 永胜县| 略阳县| 贵南县| 彝良县| 隆化县| 陵川县| 启东市| 哈尔滨市| 新密市| 会理县| 博白县| 酒泉市| 丰台区| 城市| 乡宁县| 高陵县| 尖扎县| 滨州市| 博野县| 剑阁县| 铁力市| 库尔勒市| 神木县| 将乐县| 安康市| 西华县| 伊宁市| 武隆县| 梅河口市| 临漳县| 靖安县| 榆中县| 商都县| 普兰县| 广饶县| 玉溪市| 吉首市|