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

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

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

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

(一)步驟

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

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

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

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

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

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

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

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

如何找問題:

1.明確哪些代碼是多線程運(yùn)行代碼。

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

3.明確多線程運(yùn)行代碼中哪些語句是操作共享數(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(); 
   
   
  } 
 
 
} 


總結(jié): 

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

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

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

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

相關(guān)文章

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

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

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

    Spring的懶加載機(jī)制原理和配置詳解

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

    詳解Java虛擬機(jī)(JVM)運(yùn)行時

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

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

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

    詳解Java8中CompletableFuture類的使用

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

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

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

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

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

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

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

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

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

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

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

最新評論

商洛市| 社会| 建平县| 合山市| 邢台市| 万全县| 诏安县| 杭锦后旗| 图们市| 灌云县| 辽阳县| 康保县| 穆棱市| 龙里县| 临湘市| 长宁县| 泰顺县| 彩票| 红原县| 遂宁市| 肥西县| 姜堰市| 习水县| 武隆县| 吉林省| 波密县| 五大连池市| 芦山县| 新野县| 积石山| 宁远县| 东乌| 绥江县| 颍上县| 平塘县| 姜堰市| 蒲江县| 榆社县| 海南省| 博客| 西畴县|