• 好程序員-千鋒教育旗下高端IT職業教育品牌

    400-811-9990
    我的賬戶
    好程序員

    專注高端IT職業培訓

    親愛的猿猿,歡迎!

    已有賬號,請

    如尚未注冊?

    [BigData] 好程序員大數據培訓分享線程學習筆記二

    [復制鏈接]
    65 0
    葉子老師 發表于 2019-9-29 13:23:44 | 只看該作者 |閱讀模式 打印 上一主題 下一主題
      好程序員大數據培訓分享線程學習筆記二,為什么要讓run()方法自動開啟
      cpu有隨機性,線程搶到cpu,才能干活,所以run()方法必須通過strat()方法自動啟動,這樣cpu就獲得了一個信號,知道該線程可以搶占cpu資源;
    手動運行垃圾回收器
    原理:當執行gc是,會觸發垃圾回收機制,開啟垃圾回收線程,執行finalize方法
    cpu的特性:多個線程之間是搶cpu的關系,cpu有隨機性
    主函數結束,主任務區結束,主線程隨著任務的結束而結束,線程隨著任務的開始而開始
    創建線程
    默認情況下,主線程和垃圾回收線程都是由系統創建
    ①用Thread創建線程對象
    Thread thread1=new Thread();  //只是創建Thread對象
    thread1.start();   //開啟線程
    Thread類里的run()方法默認是空的,所以start()方法執行結果
    所以需要繼承Thread類 重寫run()方法
    run()方法直接被手動調用,run()對應的線程跟調用該方法所在的線程對應
    Thread類實現了Runnable接口,Runnable接口里面只有run()方法,Thread類里實現的run()方法也只是空方法體,需要被繼承去重寫
    創建一個A類實現Runnable接口,重寫run()方法
    A a=new A();
    Thread to=new Thread(A);
    to.start();
    給某個方法的線程沖突部分加鎖
    鎖的條件
    ①鎖必須是對象
    ②要被所有的線程共享
    同步代碼塊
    synchronized(this){代碼塊}
    同步函數
    非靜態  public synchronized void xxx(){}   //默認的鎖是this  synchronized(this)
    靜態 public synchronized static void xxx(){}  //默認的鎖是當前類的字節碼文件   synchronized(xx.class)
    notify(終止線程休眠)     wait(線程休眠,不可以搶占cpu)
    wait()-->必須在同步環境中使用,必須使用鎖調用,執行這行代碼,對應的是哪個線程,就
    notify()-->喚醒的是同一把鎖下的線程,
    Lock(顯示同步) 替換 Synchronized(隱式同步)
    //創建鎖對象 Lock lock=new ReentrantLock();
    //用于生產任務的Condition
    Condition proCon = lock.newCondition();
    //用于結束任務的condition
    Condition conCon = lock.newCondition();
    //開啟鎖
    lock.lock();
    proCon.await();
    conCon.signal();
    conCon.await();
    proCon.signal();
    //關閉鎖
    lock.unlock();
    守護線程
    當程序調用setDaemon方法時,并且將參數設置成true,當前線程就變成了了守護線程,只要主線程結束,該守護線程就會結束,這個方法一定要在start前調用
    join()方法,優先級高于主線程,主線程會等當前的線程執行完后再去執行;該方法是在start之后

    精彩內容,一鍵分享給更多人!
    收藏
    收藏0
    轉播
    轉播
    分享
    淘帖0
    支持
    支持0
    反對
    反對0
    回復

    使用道具 舉報

    您需要登錄后才可以回帖

    本版積分規則

    關注我們
    好程序員
    千鋒好程序員

    北京校區(總部):北京市海淀區寶盛北里西區28號中關村智誠科創大廈

    深圳西部硅谷校區:深圳市寶安區寶安大道5010號深圳西部硅谷B座A區605-619

    杭州龍馳智慧谷校區:浙江省杭州市下沙經濟技術開發區元成路199號龍馳智慧谷B座7層

    鄭州校區:鄭州市二七區航海中路60號海為科技園C區10層、12層

    Copyright 2007-2019 北京千鋒互聯科技有限公司 .All Right

    京ICP備12003911號-5 京公安網11010802011455號

    請您保持通訊暢通1對1咨詢馬上開啟

    色日日 - 色日日网集百万部多多潮流电影,酷酷小说,精彩图片,火辣