老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)

利用Java怎么實(shí)現(xiàn)一個(gè)同步函數(shù)

本篇文章為大家展示了利用Java怎么實(shí)現(xiàn)一個(gè)同步函數(shù),內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

10年積累的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有豐寧免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

具體方法如下:

/*
同步函數(shù)
當(dāng)函數(shù)中的代碼全部放在了同步代碼塊中,那么這個(gè)函數(shù)就是同步函數(shù)
*/
//同步函數(shù)的鎖是this鎖,this是一個(gè)引用,this指向的對(duì)象就是鎖
//下面證明一下同步函數(shù)的鎖就是this
//創(chuàng)建兩個(gè)線程,一個(gè)在同步代碼塊中執(zhí)行,另一個(gè)在同步函數(shù)中執(zhí)行
//同步代碼塊用的鎖是obj,同步函數(shù)用的所是this
//這就導(dǎo)致了兩個(gè)線程存在兩把鎖,會(huì)出現(xiàn)上次所說(shuō)的安全問(wèn)題,即出現(xiàn)錯(cuò)誤數(shù)據(jù)
//只有兩個(gè)線程同時(shí)用一把鎖,才能解決多線程的安全問(wèn)題
class Ticket implements Runnable{
  private int num = 50;//當(dāng)用靜態(tài)同步函數(shù)時(shí),需要將對(duì)象也改為靜態(tài)的
  private Object obj = new Object();
  //加一個(gè)flag標(biāo)記,一個(gè)線程得到CPU,判斷flag值
  //如果是true,讓他在同步代碼塊中執(zhí)行,一旦進(jìn)去就出不來(lái)了,因?yàn)槿蝿?wù)代碼為死循環(huán)
  //否則讓他在同步函數(shù)中執(zhí)行
  boolean flag = true;
  public void run(){
    if(flag){
      while(true){
        //同步代碼塊,這里用的鎖是obj,與同步函數(shù)用不一樣的鎖,會(huì)出現(xiàn)安全問(wèn)題
        //synchronized(obj){
        //將鎖改為this,與同步函數(shù)為同一把鎖,就沒(méi)有問(wèn)題了
        synchronized(this){//如果下面是靜態(tài)同步函數(shù),則應(yīng)該把this改為T(mén)icket.class,同一把鎖
          if(num>0){
            //強(qiáng)制線程放棄CPU,睡眠的線程不會(huì)放棄鎖
            try{Thread.sleep(20);}catch(InterruptedException e){e.printStackTrace();}
            System.out.println(Thread.currentThread().getName()+"...sale..."+num--);//1
          }
        }//釋放鎖
      }
    }
    else{
      while(true){
        fun();
      }
    }
  }
  ////靜態(tài)函數(shù)進(jìn)內(nèi)存的時(shí)候不存在對(duì)象,但是存在其所屬類(lèi)的字節(jié)碼文件對(duì)象,屬于Class類(lèi)型的對(duì)象,
  //鎖必須是對(duì)象,字節(jié)碼文件,也是個(gè)對(duì)象,所以,靜態(tài)同步函數(shù)的鎖就是其所屬類(lèi)的字節(jié)碼文件對(duì)象
  //public static synchronized void fun(){//鎖為T(mén)icket.class
  //這個(gè)函數(shù)的代碼都是同步代碼塊中的,所以這個(gè)函數(shù)可以修飾為同步的,即同步函數(shù)
  public synchronized void fun(){
    if(num>0){
      //強(qiáng)制線程放棄CPU,睡眠的線程不會(huì)放棄鎖
      try{Thread.sleep(20);}catch(InterruptedException e){e.printStackTrace();}
      System.out.println(Thread.currentThread().getName()+"...sale..."+num--);//1
    }
  }
}
class test{
  public static void main(String[] args){
    Ticket t = new Ticket();
    Thread t1 = new Thread(t);
    Thread t2 = new Thread(t);
    t1.start();
    //t1先啟動(dòng),但是他并不一定能搶到CPU,主線程依舊拿著CPU
    //主線程拿著CPU往下走,將flag改為了false,導(dǎo)致兩個(gè)
    //線程同時(shí)用的一個(gè)任務(wù)代碼,即一把鎖,不會(huì)出現(xiàn)安全問(wèn)題,所以,應(yīng)該在此處
    //讓主線程進(jìn)入睡眠狀態(tài),主線程放棄CPU,然后t1立刻拿到CPU,
    //這樣t1就可以,在flag是true的情況下,進(jìn)入同步代碼塊中執(zhí)行
    //所以t1用的就是obj鎖,然后主線程再拿上CPU,將flag改為false
    //t2拿上CPU時(shí),flag就為false,所以進(jìn)入的是同步函數(shù)中執(zhí)行,
    //同步函數(shù)用的鎖是this,兩把鎖,肯定會(huì)出現(xiàn)線程安全問(wèn)題,所以,
    //如果想解決安全問(wèn)題,將同步代碼塊的鎖,也改為this,即可解決
    //讓主線程放棄CPU
    try{
      Thread.sleep(20);
    }catch(InterruptedException e){
      e.printStackTrace();
    }
    t.flag = false;
    t2.start();
  }
}

總結(jié)

同步函數(shù)的鎖是this,靜態(tài)同步函數(shù)的鎖是他所屬類(lèi)的字節(jié)碼文件對(duì)象。

上述內(nèi)容就是利用Java怎么實(shí)現(xiàn)一個(gè)同步函數(shù),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當(dāng)前文章:利用Java怎么實(shí)現(xiàn)一個(gè)同步函數(shù)
鏈接URL:http://www.xueling.net.cn/article/ggdpjc.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 亚洲国产午夜精品理论片妓女 | 满春阁精品a∨在线观看 | 国产在线观看精品一区二区三区 | 人妻丝袜中文无码av影音先锋专区 | 99精品国产福久久久久久 | 国产精品久久久影视青草 | 久久久久久国产精品免费免费男同 | 成人国产精品一区 | 午夜精品久久久久久久 | 久久久久一 | 精品欧美一区二区在线观看欧美熟 | www.5588.com毛片 | 欧美一区二区三区白人 | 日韩特黄特刺激午夜毛片 | 99精品视频99 | 高H紫黑色的又粗又上翘 | 久草香蕉依人在线 | 少妇无码AV无码一区 | 99蜜久久精品国产首页 | 天天操夜夜艹 | 国产女人18毛片水真多18精品 | 亚洲精品无码久久久久AV老牛 | 国产精品99无码一区二区 | 国产精品素人一区二区 | 四虎综合网 | 国产精品久久人妻无码免费看 | 欧美老妇疯狂xxxxbbbb | 欧美精品一区二区三区视频 | 国产精品久久久久一区二区国产 | 成人免费无码大片a | 精品一区二区中文字幕 | 秋霞理论理论福利院久久 | 亚洲人成无码网站18禁 | 亚洲欧美成人 | 国产一区一区三区 | 精品色播 | 国产乱人伦AV在线麻豆A | 美女视频黄a视频全免费网站一区 | 新午夜影院 | 女人爽到高潮免费视频2 | 明星乱淫免费视频欧美 |