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

java Thread 多線程

 更新時間:2013年04月18日 15:34:00   作者:  
本篇文章小編為大家介紹,java Thread 多線程。需要的朋友參考下

Thread 創(chuàng)建線程的兩種方法:

1、定義類繼承Thread類,覆寫類中的run方法,調(diào)用類對象的start方法,start方法啟動線程,調(diào)用run方法。Thread類用于描述線程;該類定義一個功能run,用于存儲線程要運(yùn)行的代碼。

2、定義類實現(xiàn)Runnable接口,覆蓋Runnable接口中的方法,通過Thread類建立線程對象,將Runnable接口的子類對象作為實際參數(shù)傳遞給Thread類的構(gòu)造函數(shù),調(diào)用Thread類的start方法開啟線程,線程會調(diào)用Runnable接口子類中的run方法;

實現(xiàn)接口Runnable的方式避免了單繼承帶來的局限性;

Thread T;

T.setMaemon(true);//設(shè)置線程為后臺線程;當(dāng)所有前臺線程結(jié)束后后臺線程自動結(jié)束;

T.notify();//喚醒本線程;

T.notifyAll();//喚醒全部線程;

T.interrupt();//中斷線程;

Thread.sleep(100);//暫停線程100毫秒

synchronized:默認(rèn)鎖定的是本身,也可以鎖定自定義的對象;

必須要有兩個及以上的線程執(zhí)行,多個線程使用同一個鎖,必須保證同步過程中只能有一個線程在運(yùn)行;

判斷同步: 明確哪些代碼是需要多線程運(yùn)行的代碼,明確共享數(shù)據(jù),明確多線程運(yùn)行代碼中哪些語句是操作共享數(shù)據(jù);

class Tickets implements Runnable
{
 private int tick = 100;
 public void run() { // public synchronized void run()
  while (tick > 0) {
   synchronized (this) {
    if (tick > 0) {
     try {
      Thread.sleep(100);
     } catch (InterruptedException e) {
      e.printStackTrace();
     }
     System.out.println(this.toString() + "sale:" + tick--);
    }
   }
  }
 }

如上:tick就是共享數(shù)據(jù),操作tick就需要在synchronized中進(jìn)行操作,synchroized鎖定的就是Tickets本身;

等待喚醒機(jī)制: 在操作同步線程時,都必須要標(biāo)識它們所操作線程所持有的鎖,只有同一個鎖上的被等待線程,才可以被同一個鎖上的notify喚醒,不可以對不同鎖中的線程進(jìn)行了喚醒;(也即:等待和喚醒必須是同一個鎖)

相關(guān)文章

  • 詳解Java中KMP算法的圖解與實現(xiàn)

    詳解Java中KMP算法的圖解與實現(xiàn)

    KMP算法是一種神奇的字符串匹配算法,在對超長字符串進(jìn)行模板匹配的時候比暴力匹配法的效率會高不少。本文將利用圖解為大家詳細(xì)講解KMP算法的實現(xiàn),需要的可以參考一下
    2022-05-05
  • 詳解SpringCloud微服務(wù)之Rest

    詳解SpringCloud微服務(wù)之Rest

    今天帶大家學(xué)習(xí)SpringCloud微服務(wù)之Rest的有關(guān)知識,文中有非常詳細(xì)的介紹及代碼示例,對正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • 使用SpringDataJpa創(chuàng)建中間表

    使用SpringDataJpa創(chuàng)建中間表

    這篇文章主要介紹了使用SpringDataJpa創(chuàng)建中間表,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringBoot使用AOP記錄接口操作日志的方法

    SpringBoot使用AOP記錄接口操作日志的方法

    日志記錄量是很大的,所以只記錄關(guān)鍵地方并按期歸檔,最好是存在如elasticsearch中,如果存在數(shù)據(jù)庫中,分表是不錯的選擇,這篇文章主要介紹了SpringBoot使用AOP記錄接口操作日志的方法,需要的朋友可以參考下
    2022-08-08
  • 一篇文章帶你深入了解Java封裝

    一篇文章帶你深入了解Java封裝

    Java中的封裝是將數(shù)據(jù)(變量)和作用于數(shù)據(jù)(方法)的代碼作為一個單元包裝在一起的機(jī)制。 在封裝中,類的變量將從其他類隱藏,并且只能通過當(dāng)前類的方法訪問
    2021-08-08
  • SpringBoot默認(rèn)包掃描機(jī)制及@ComponentScan指定掃描路徑詳解

    SpringBoot默認(rèn)包掃描機(jī)制及@ComponentScan指定掃描路徑詳解

    這篇文章主要介紹了SpringBoot默認(rèn)包掃描機(jī)制及@ComponentScan指定掃描路徑詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 深入理解Java SpringCloud Ribbon 負(fù)載均衡

    深入理解Java SpringCloud Ribbon 負(fù)載均衡

    Ribbon是一個客戶端負(fù)載均衡器,它提供了對HTTP和TCP客戶端的行為的大量控制。這篇文章主要介紹了SpringCloud Ribbon 負(fù)載均衡的實現(xiàn),感興趣的小伙伴們可以參考一下
    2021-09-09
  • 解決使用@ManyToMany查詢數(shù)據(jù)時的死循環(huán)問題

    解決使用@ManyToMany查詢數(shù)據(jù)時的死循環(huán)問題

    這篇文章主要介紹了解決使用@ManyToMany查詢數(shù)據(jù)時的死循環(huán)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java Idea高效率配置技巧實例解析

    Java Idea高效率配置技巧實例解析

    這篇文章主要介紹了Java Idea高效率配置技巧實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Spring中@Import的各種用法以及ImportAware接口詳解

    Spring中@Import的各種用法以及ImportAware接口詳解

    這篇文章主要介紹了Spring中@Import的各種用法以及ImportAware接口詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10

最新評論

楚雄市| 新安县| 尼玛县| 北碚区| 珠海市| 昌平区| 余干县| 寻乌县| 运城市| 辽阳县| 正镶白旗| 沙坪坝区| 耒阳市| 沈阳市| 崇礼县| 罗山县| 锡林郭勒盟| 河间市| 工布江达县| 渝中区| 东至县| 惠来县| 石狮市| 南召县| 土默特右旗| 安阳市| 平塘县| 万宁市| 容城县| 新兴县| 光山县| 怀柔区| 綦江县| 乌什县| 新巴尔虎右旗| 嘉黎县| 正镶白旗| 平和县| 洪泽县| 呼玛县| 玉屏|