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

Java多線程實現(xiàn)Runnable方式

 更新時間:2018年03月23日 11:05:58   作者:Francis-Yu  
這篇文章主要為大家詳細介紹了Java多線程如何實現(xiàn)Runnable方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文為大家分享了Java多線程實現(xiàn)Runnable方式的具體方法,供大家參考,具體內容如下

(一)步驟

 1.定義實現(xiàn)Runnable接口

 2.覆蓋Runnable接口中的run方法,將線程要運行的代碼存放在run方法中。

3.通過Thread類建立線程對象。

4.將Runnable接口的子類對象作為實際參數(shù)傳遞給Thread類的構造函數(shù)。

  為什么要講Runnable接口的子類對象傳遞給Thread的構造方法。因為自定義的方法的所屬的對象是Runnable接口的子類對象。

5.調用Thread類的start方法開啟線程并調用Runnable接口子類run方法。

(二)線程安全的共享代碼塊問題

目的:程序是否存在安全問題,如果有,如何解決?

如何找問題:

1.明確哪些代碼是多線程運行代碼。

2.明確共享數(shù)據(jù)

3.明確多線程運行代碼中哪些語句是操作共享數(shù)據(jù)的。

class Bank{ 
 
  private int sum; 
  public void add(int n){ 
   
     sum+=n; 
     System.out.println("sum="+sum); 
   
  } 
 
} 
 class Cus implements Runnable{ 
 
  private Bank b=new Bank(); 
  public void run(){ 
   synchronized(b){   
     for(int x=0;x<3;x++) 
     { 
      b.add(100); 
      
     } 
   } 
  } 
 
} 
public class BankDemo{ 
  public static void main(String []args){ 
    Cus c=new Cus(); 
    Thread t1=new Thread(c); 
    Thread t2=new Thread(c); 
    t1.start(); 
    t2.start(); 
   
   
  } 
 
 
}

或者第二種方式,將同步代碼synchronized放在修飾方法中。 

class Bank{ 
 
  private int sum; 
  public synchronized void add(int n){ 
    Object obj=new Object(); 
      
     sum+=n; 
     try{ 
       Thread.sleep(10); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
     System.out.println("sum="+sum); 
     
  } 
 
} 
 class Cus implements Runnable{ 
 
  private Bank b=new Bank(); 
  public void run(){ 
     
     for(int x=0;x<3;x++) 
     { 
      b.add(100); 
      
     } 
    
  } 
 
} 
public class BankDemo{ 
  public static void main(String []args){ 
    Cus c=new Cus(); 
    Thread t1=new Thread(c); 
    Thread t2=new Thread(c); 
    t1.start(); 
    t2.start(); 
   
   
  } 
 
 
} 


總結: 

1.在一個類中定義要處理的問題,方法。

2.在實現(xiàn)Runnable的類中重寫run方法中去調用已經(jīng)定義的類中的要處理問題的方法。 
在synchronized塊中接受要處理問題那個類的對象。

3.在main方法中去定義多個線程去執(zhí)行。

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

相關文章

  • 登錄EasyConnect后無法通過jdbc訪問服務器數(shù)據(jù)庫問題的解決方法

    登錄EasyConnect后無法通過jdbc訪問服務器數(shù)據(jù)庫問題的解決方法

    描述一下近期使用EasyConnect遇到的問題,下面這篇文章主要給大家介紹了關于登錄EasyConnect后無法通過jdbc訪問服務器數(shù)據(jù)庫問題的解決方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • Spring的懶加載機制原理和配置詳解

    Spring的懶加載機制原理和配置詳解

    這篇文章主要介紹了Spring的懶加載機制原理和配置詳解,Spring提供了懶加載機制,所謂的懶加載機制就是可以規(guī)定指定的bean不在啟動時立即創(chuàng)建,而是在后續(xù)第一次用到時才創(chuàng)建,從而減輕在啟動過程中對時間和內存的消耗,需要的朋友可以參考下
    2023-10-10
  • 詳解Java虛擬機(JVM)運行時

    詳解Java虛擬機(JVM)運行時

    JVM(Java虛擬機)是一個抽象的計算模型。這篇文章主要介紹了Java虛擬機(JVM)運行時的相關知識,需要的朋友可以參考下
    2018-10-10
  • Hadoop2.8.1完全分布式環(huán)境搭建過程

    Hadoop2.8.1完全分布式環(huán)境搭建過程

    本文搭建了一個由三節(jié)點(master、slave1、slave2)構成的Hadoop完全分布式集群(區(qū)別單節(jié)點偽分布式集群),并通過Hadoop分布式計算的一個示例測試集群的正確性。對hadoop分布式環(huán)境搭建過程感興趣的朋友跟隨小編一起看看吧
    2019-06-06
  • 詳解Java8中CompletableFuture類的使用

    詳解Java8中CompletableFuture類的使用

    Java?8中引入了CompletableFuture類,它是一種方便的異步編程工具,可以處理各種異步操作,本文將詳細介紹CompletableFuture的使用方式,希望對大家有所幫助
    2023-04-04
  • JDK14新特性之switch表達式的實現(xiàn)

    JDK14新特性之switch表達式的實現(xiàn)

    這篇文章主要介紹了JDK14新特性之switch表達式的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • Java如何將二維數(shù)組轉化為一維數(shù)組

    Java如何將二維數(shù)組轉化為一維數(shù)組

    這篇文章主要介紹了Java如何將二維數(shù)組轉化為一維數(shù)組,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • maven多個倉庫查詢的優(yōu)先級順序案例講解

    maven多個倉庫查詢的優(yōu)先級順序案例講解

    這篇文章主要介紹了maven多個倉庫查詢的優(yōu)先級順序,考慮到我們常用的配置文件是conf/settings.xml和工程里面的pom.xml文件,我們針對這兩個文件的結合來分析倉庫的使用順序,需要的朋友可以參考下
    2023-04-04
  • ava實現(xiàn)一致性Hash算法

    ava實現(xiàn)一致性Hash算法

    本文主要詳細介紹了Java如何實現(xiàn)一致性Hash算法,其實現(xiàn)原理將key映射到?2^32?-?1?的空間中,將這個數(shù)字的首尾相連,形成一個環(huán)。想了解更多的同學,可以參考本文
    2023-03-03
  • Java創(chuàng)建圖形用戶界面(GUI)入門詳細指南(Swing庫JFrame類)

    Java創(chuàng)建圖形用戶界面(GUI)入門詳細指南(Swing庫JFrame類)

    這篇文章主要介紹了使用Java?Swing庫的JFrame類創(chuàng)建基本的圖形用戶界面,包括窗口的創(chuàng)建、組件的添加和事件處理,通過代碼講解了如何設置窗口大小、添加按鈕及處理按鈕點擊事件,適合初學者學習和開發(fā)GUI應用程序,需要的朋友可以參考下
    2024-11-11

最新評論

芦溪县| 德钦县| 武川县| 泰和县| 朝阳市| 昭通市| 惠水县| 高州市| 鸡西市| 玉溪市| 绥宁县| 秦安县| 泸定县| 南阳市| 防城港市| 鹰潭市| 保山市| 屏东市| 芒康县| 聂拉木县| 荔浦县| 横山县| 阳曲县| 土默特左旗| 青海省| 连南| 河西区| 历史| 禄丰县| 博罗县| 济源市| 绿春县| 周宁县| 彭阳县| 四会市| 吉木乃县| 临泉县| 桂东县| 和政县| 偃师市| 蓝田县|