日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

引言

為什么很多大廠喜歡問(wèn)并發(fā)編程呢?因?yàn)椴l(fā)編程是開(kāi)發(fā)人員的一個(gè)分水嶺。很多好幾年開(kāi)發(fā)經(jīng)驗(yàn)的開(kāi)發(fā)人員可能也沒(méi)有實(shí)際的并發(fā)編程經(jīng)驗(yàn),要么就是在一些沒(méi)有挑戰(zhàn)性的中臺(tái)實(shí)現(xiàn)了所謂的分布式鎖,但是沒(méi)有并發(fā)量去考驗(yàn),要么就是笑著說(shuō)其實(shí)工作中用不上,這些開(kāi)發(fā)人員后面會(huì)逐漸被AI淘汰,CURD的東西花這么多錢請(qǐng)你們干嘛呢?為什么不直接請(qǐng)個(gè)便宜的應(yīng)屆生呢?鍛煉一兩年絕對(duì)不比這些開(kāi)發(fā)人員差。因此,努力越過(guò)分水嶺,往架構(gòu)組件的能力出發(fā)吧。這篇文章將會(huì)是你的出發(fā)點(diǎn),這里會(huì)詳細(xì)介紹JDK 的并發(fā)包的原理及使用方法。

1、JUC并發(fā)編程概述

J.U.C并發(fā)包,即JAVA.util.concurrent包,是JDK的核心工具包,是JDK1.5之后,由 Doug Lea實(shí)現(xiàn)并引入。
整個(gè)java.util.concurrent包,按照功能可以大致劃分如下:
  • juc-locks 鎖框架
  • juc-atomic 原子類框架
  • juc-sync 同步器框架、工具類
  • juc-collections 集合框架
課程J.U.C,分析所有基于的源碼為Oracle JDK1.8

2、多線程基礎(chǔ):進(jìn)程、線程

多線程概念介紹
  • 進(jìn)程:我們把運(yùn)行中的程序叫做進(jìn)程(概念)。每個(gè)進(jìn)程都會(huì)占用內(nèi)存與CPU資源(動(dòng)態(tài)性)。進(jìn)程與進(jìn)程之間各自占用各自的內(nèi)存資源,互相獨(dú)立(獨(dú)立性)。
  • 線程:線程就是進(jìn)程中的一個(gè)執(zhí)行單元,負(fù)責(zé)當(dāng)前進(jìn)程中程序的執(zhí)行。一個(gè)進(jìn)程可以包含多個(gè)線程。一個(gè)進(jìn)程包含了多個(gè)線程就是多線程。多線程可以提高程序的并行運(yùn)行效率。
     線程簡(jiǎn)述: 線程是進(jìn)程的執(zhí)行單元,用來(lái)執(zhí)行代碼。
為什么使用多線程?
多線程有什么用?這里舉例說(shuō)明:
比如看學(xué)習(xí)視頻時(shí)候:我們?cè)诳匆曨l的同時(shí),還可以聽(tīng)到聲音,還可以看到廣告以及彈幕,這里至少用到四個(gè)線程,當(dāng)其中一個(gè)線程卡死如放不了彈幕不影響播放廣告。
看完后,你再也不用怕面試問(wèn)并發(fā)編程啦
如上圖,要達(dá)到并行執(zhí)行的效果,這里就要用到多線程。
  • 并行: 兩個(gè)或兩個(gè)以上的事件在同一時(shí)刻發(fā)生(同時(shí)發(fā)生)
  • 并發(fā): 兩個(gè)或兩個(gè)以上的事件在一個(gè)時(shí)間段內(nèi)發(fā)生(交替執(zhí)行)
線程調(diào)度
計(jì)算機(jī)通常只有一個(gè)CPU時(shí),在任意時(shí)刻只能執(zhí)行一條計(jì)算機(jī)指令,每一個(gè)進(jìn)程只有獲得CPU的使用權(quán)才能執(zhí)行指令。所謂多進(jìn)程并發(fā)運(yùn)行,從宏觀上看,其實(shí)是各個(gè)進(jìn)程輪流獲得CPU的使用權(quán),分別執(zhí)行各自的任務(wù)。那么,就會(huì)有多個(gè)線程處于就緒狀態(tài)等到CPU,JVM就負(fù)責(zé)了線程的調(diào)度。JVM采用的是搶占式調(diào)度,沒(méi)有采用分時(shí)調(diào)度,因此可能造成多線程執(zhí)行結(jié)果的的隨機(jī)性。
說(shuō)明:在單核CPU中,同一個(gè)時(shí)刻只有一個(gè)線程執(zhí)行,根據(jù)CPU時(shí)間片算法依次為每個(gè)線程服務(wù),這就叫線程調(diào)度。

3、多線程編程:wait()、notify()、notifyAll()

目標(biāo): 線程等待和喚醒使用。
介紹
等待和喚醒:通常是兩個(gè)線程之間的事情,一個(gè)線程等待,另外一個(gè)線程負(fù)責(zé)喚醒
等待和喚醒
  • wait() 等待
  • notity() 喚醒單個(gè)
  • notityAll() 喚醒全部
Object類:
public final void wait();             // 導(dǎo)致當(dāng)前線程等待
public final native void wait(long timeout) throws InterruptedException;
public final native void notify();    // 喚醒正在等待的單個(gè)線程
public final native void notifyAll(); // 喚醒正在等待的全部線程
 

分享到:
標(biāo)簽:并發(fā) 編程
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定