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

java實現(xiàn)Runnable接口適合資源的共享

 更新時間:2018年07月18日 11:01:52   作者:xusheng_Mr  
這篇文章主要為大家詳細介紹了java實現(xiàn)Runnable接口適合資源的共享,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文為大家分享了java實現(xiàn)Runnable接口適合資源的共享,供大家參考,具體內(nèi)容如下

Java當中,創(chuàng)建線程通常用兩種方式:

1、繼承Thread類

2、實現(xiàn)Runnable接口

但是在通常的開發(fā)當中,一般會選擇實現(xiàn)Runnable接口,原因有二:
1.避免單繼承的局限,在Java當中一個類可以實現(xiàn)多個接口,但只能繼承一個類
2.適合資源的共享
原因1我們經(jīng)常聽到,但是2是什么呢?下面用一個例子來解釋:
有5張票,分兩個窗口賣:

繼承Thread類:

public class ThreadDemo {
  public static void main(String[] args) {
    HelloThread t1 = new HelloThread();
    t1.setName("一號窗口");
    t1.start();
    HelloThread t2 = new HelloThread();
    t2.setName("二號窗口");
    t2.start();
  }

}
class HelloThread extends Thread{

   private int ticket = 5;
  public void run() {
    while(true){
      System.out.println(this.getName()+(ticket--));
      if (ticket<1) {
        break;  
      }
    }
  }

}

運行結(jié)果:


很明顯,這樣達不到我們想要的結(jié)果,這樣兩個窗口在同時賣票,互不干涉。

實現(xiàn)Thread類:

public class ThreadDemo {
  public static void main(String[] args) {
    HelloThread t = new HelloThread();
    Thread thread1 = new Thread(t, "1號窗口");
    thread1.start();
    Thread thread2 = new Thread(t, "2號窗口");
    thread2.start();
  }

}
class HelloThread implements Runnable{

  private int ticket = 5;
  public void run() {
    while(true){
      System.out.println(Thread.currentThread().getName()+(ticket--));
      if (ticket<1) {
        break;  
      }
    }
  }

}

運行結(jié)果:

這樣兩個窗口就共享了5張票,因為只產(chǎn)生了一個HelloThread對象,一個對象里邊有一個屬性,這樣兩個線程同時在操作一個屬性,運行同一個run方法。

這樣就達到了資源的共享。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java超詳細教你寫一個銀行存款系統(tǒng)案例

    Java超詳細教你寫一個銀行存款系統(tǒng)案例

    這篇文章主要介紹了怎么用Java來寫一個銀行的存款系統(tǒng),銀行存款主要有賬號和存款金額兩個屬性,感興趣的朋友跟隨文章往下看看吧
    2022-03-03
  • SpringBoot之RestTemplate在URL中轉(zhuǎn)義字符的問題

    SpringBoot之RestTemplate在URL中轉(zhuǎn)義字符的問題

    這篇文章主要介紹了SpringBoot之RestTemplate在URL中轉(zhuǎn)義字符的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • SpringBoot中通過8項配置優(yōu)化提升Tomcat性能的配置方法

    SpringBoot中通過8項配置優(yōu)化提升Tomcat性能的配置方法

    優(yōu)化Spring Boot,Spring Cloud 應(yīng)用程序中Tomcat的配置有助于提高性能和資源利用率,這篇文章主要介紹了SpringBoot中通過8項配置優(yōu)化提升Tomcat性能的配置方法,需要的朋友可以參考下
    2024-08-08
  • 詳解java生成json字符串的方法

    詳解java生成json字符串的方法

    本篇文章主要介紹了java生成json字符串的方法,包括map對象轉(zhuǎn)換成json對象,list轉(zhuǎn)換成json,json轉(zhuǎn)換成list和map,有興趣的可以了解一下。
    2017-01-01
  • Maven?自動化構(gòu)建的實現(xiàn)示例

    Maven?自動化構(gòu)建的實現(xiàn)示例

    本文主要介紹了Maven?自動化構(gòu)建的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-05-05
  • JAVA中實現(xiàn)原生的 socket 通信機制原理

    JAVA中實現(xiàn)原生的 socket 通信機制原理

    本篇文章主要介紹了JAVA中實現(xiàn)原生的 socket 通信機制原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 淺談Java包裝類型Long的==操作引發(fā)的低級bug

    淺談Java包裝類型Long的==操作引發(fā)的低級bug

    本文主要介紹了淺談Java包裝類型Long的==操作引發(fā)的低級bug,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Spring延遲Bean初始化的實現(xiàn)示例

    Spring延遲Bean初始化的實現(xiàn)示例

    延遲初始化也叫做惰性初始化,指不提前初始化Bean,而是只有在真正使用時才創(chuàng)建及初始化Bean,本文主要介紹了Spring延遲Bean初始化的實現(xiàn)示例,感興趣的可以了解一下
    2024-06-06
  • 微信公眾號支付(二)實現(xiàn)統(tǒng)一下單接口

    微信公眾號支付(二)實現(xiàn)統(tǒng)一下單接口

    本篇文章主要給大家介紹調(diào)用微信公眾支付的統(tǒng)一下單API,通過參數(shù)封裝為xml格式并發(fā)送到微信給的接口地址就可以獲得返回內(nèi)容,需要的朋友可以參考下本文
    2015-09-09
  • Java超詳細分析泛型與通配符

    Java超詳細分析泛型與通配符

    本篇文章帶大家認識Java語法泛型與通配符,泛型和通配符是一個非常抽象的概念,簡單來說,兩者都可以將類型作為“參數(shù)”進行傳遞,不過泛型是在你知道傳入什么類型的時候使用的,而通配符是你不確定傳入什么類型的時候使用,本文將介紹泛型與通配符的使用及兩者間的區(qū)別
    2022-03-03

最新評論

桃江县| 监利县| 英德市| 呼和浩特市| 右玉县| 博乐市| 甘谷县| 兴宁市| 高邮市| 宁晋县| 毕节市| 大冶市| 府谷县| 阿巴嘎旗| 法库县| 个旧市| 常熟市| 叙永县| 明水县| 淄博市| 确山县| 内黄县| 临朐县| 突泉县| 无极县| 东宁县| 东丽区| 精河县| 惠州市| 太仆寺旗| 台州市| 巧家县| 页游| 外汇| 洪江市| 修水县| 阜康市| 株洲市| 浙江省| 盘锦市| 镇平县|