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

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

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

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

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

1、繼承Thread類

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

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

繼承Thread類:

public class ThreadDemo {
  public static void main(String[] args) {
    HelloThread t1 = new HelloThread();
    t1.setName("一號(hào)窗口");
    t1.start();
    HelloThread t2 = new HelloThread();
    t2.setName("二號(hào)窗口");
    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;  
      }
    }
  }

}

運(yùn)行結(jié)果:


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

實(shí)現(xiàn)Thread類:

public class ThreadDemo {
  public static void main(String[] args) {
    HelloThread t = new HelloThread();
    Thread thread1 = new Thread(t, "1號(hào)窗口");
    thread1.start();
    Thread thread2 = new Thread(t, "2號(hào)窗口");
    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;  
      }
    }
  }

}

運(yùn)行結(jié)果:

這樣兩個(gè)窗口就共享了5張票,因?yàn)橹划a(chǎn)生了一個(gè)HelloThread對(duì)象,一個(gè)對(duì)象里邊有一個(gè)屬性,這樣兩個(gè)線程同時(shí)在操作一個(gè)屬性,運(yùn)行同一個(gè)run方法。

這樣就達(dá)到了資源的共享。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • springboot使用mybatis開啟事務(wù)回滾

    springboot使用mybatis開啟事務(wù)回滾

    本文主要介紹了springboot使用mybatis開啟事務(wù)回滾,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Java利用多線程復(fù)制文件

    Java利用多線程復(fù)制文件

    這篇文章主要介紹了Java利用多線程復(fù)制文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • 一文總結(jié)Java獲取文件后綴名的所有方法

    一文總結(jié)Java獲取文件后綴名的所有方法

    Java是一種應(yīng)用廣泛的編程語言,可以通過多種方式來實(shí)現(xiàn)對(duì)文件的操作,如文件名后綴、文件擴(kuò)展名等,下面這篇文章主要給大家介紹了關(guān)于Java獲取文件后綴名的所有方法,需要的朋友可以參考下
    2023-05-05
  • 在springboot項(xiàng)目中同時(shí)接收文件和多個(gè)參數(shù)的方法總結(jié)

    在springboot項(xiàng)目中同時(shí)接收文件和多個(gè)參數(shù)的方法總結(jié)

    在開發(fā)接口中,遇到了需要同時(shí)接收文件和多個(gè)參數(shù)的情況,可以有多種方式實(shí)現(xiàn)文件和參數(shù)的同時(shí)接收,文中給大家介紹了兩種實(shí)現(xiàn)方法,感興趣的同學(xué)跟著小編一起來看看吧
    2023-08-08
  • 基于FeignException$InternalServerError的解決方案

    基于FeignException$InternalServerError的解決方案

    這篇文章主要介紹了FeignException$InternalServerError的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java對(duì)象的序列化與反序列化詳解

    Java對(duì)象的序列化與反序列化詳解

    這篇文章主要為大家詳細(xì)介紹了Java對(duì)象的序列化與反序列化的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 解決Eclipse配置Tomcat出現(xiàn)Cannot create a server using the selected type錯(cuò)誤

    解決Eclipse配置Tomcat出現(xiàn)Cannot create a server using the selected

    這篇文章主要介紹了解決Eclipse配置Tomcat出現(xiàn)Cannot create a server using the selected type錯(cuò)誤的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • springboot?vue項(xiàng)目管理后端實(shí)現(xiàn)接口新增

    springboot?vue項(xiàng)目管理后端實(shí)現(xiàn)接口新增

    這篇文章主要為大家介紹了springboot?vue項(xiàng)目管理后端實(shí)現(xiàn)接口新增,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 深入解析Java多態(tài)進(jìn)階學(xué)習(xí)

    深入解析Java多態(tài)進(jìn)階學(xué)習(xí)

    java的動(dòng)態(tài)綁定機(jī)制非常重要。這篇文章將帶大家更深入的學(xué)習(xí)一下Java的多態(tài),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下
    2022-07-07
  • Java8 如何正確高效的使用并行流

    Java8 如何正確高效的使用并行流

    這篇文章主要介紹了Java8 如何正確高效的使用并行流,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評(píng)論