91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

大數據線程高級部分內容有哪些

發布時間:2021-12-22 15:30:52 來源:億速云 閱讀:152 作者:iii 欄目:大數據

本篇內容介紹了“大數據線程高級部分內容有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

首先講一下線程的生命周期

> 對于一個線程, 在被創建后, 不是立即就進入到了運行狀態, 也不是一直處于運行狀態, 在線程的聲明周期中, 一個線程會在多種狀態之間進行切換

>

>  

>

> new : 新生狀態, 線程被實例化, 但是還沒有開始執行(start)

>

> runnable: 就緒狀態, 已經執行過start, 線程已經啟動了, 只是沒有搶到CPU時間片

>

> running: 運行狀態, 搶到了CPU時間片

>

> blocked: 阻塞狀態, 線程執行的過程中, 遇到一些特殊情況, 會進入阻塞狀態. 阻塞中的線程, 是不能參數時間片的搶奪的 (不能被線程調度器調度)

>

> dead: 死亡狀態, 線程終止

>

>  正常死亡 : run方法中的代碼執行結束

>

>  非正常死亡 : 強制使用stop方法停止這個線程

#### 臨界資源問題

> 由于線程之間是資源共享的。如果有多個線程,同時對一個數據進行操作,此時這個數據會出現問題。

> 如果有一個線程在訪問一個臨界資源,在訪問之前,先對這個資源“上鎖”,此時如果有其他的線程也需要訪問這個臨界資源,需要先查這個資源有沒有被上鎖,如果沒有被上鎖,此時這個線程可以訪問這個資源;如果上鎖了,則此時這個線程進入阻塞狀態,等待解鎖。

####同步代碼段

> ```java

> // 同步代碼段

> // 小括號:就是鎖

> // 大括號:同步代碼段,一般情況下,寫需要對臨界資源進行的操作

> synchronized () {

>   

> }

> // 關于同步鎖:可以分成兩種:對象鎖、類鎖

> //

> ```

>

####同步方法

> ```java

> // 使用synchronized關鍵字修飾的方法就是同步方法

> // 將一個方法中所有的代碼進行一個同步

> // 相當于將一個方法中所有的代碼都放到一個synchronized代碼段中

> // 同步方法的鎖:

> // 1. 如果這個方法是一個非靜態方法:鎖是this

> // 2. 如果這個方法是一個靜態方法:鎖是類鎖(當前類.class)

> private synchronized void sellTicket() {

> }

> ```

>

#### lock與unlock

> 就是一個類RenntrantLock

#### 線程死鎖(了解)

在解決臨界資源問題的時候,我們引入了一個"鎖"的概念。我們可以用鎖對一個資源進行保護。實際,在多線程的環境下,有可能會出現一種情況:

> 假設有A和B兩個線程,其中線程A持有鎖標記a,線程B持有鎖標記b,而此時,線程A等待鎖標記b的釋放,線程B等待鎖標記a的釋放。這種情況,叫做  **死鎖**

#### 生產者消費者設計模式

> wait() 、notify() 、notifyAll()

>

> wait(): 等待。使得當前的線程釋放鎖標記,進入等待隊列。可以使當前的線程進入阻塞狀態。

>

> notify(): 喚醒,喚醒等待隊列中的一個線程。

>

> notifyAll(): 喚醒,喚醒等待隊列中所有的線程。

> wait和sleep的區別:

>

> 1. 兩個方法都可以使一個線程進入阻塞。

> 2. 區別:wait方法會釋放鎖標記,sleep則不會釋放鎖標記。

####懶漢式單例設計模式中的線程安全問題

#### 線程池

> ThreadPoolExecutor類是線程池最核心的類。這個類的構造方法中的幾個參數:

>

> int corePoolSize: 核心線程數量。核心池大小。

>

> int maxmiunPoolSize: 線程池中最多的線程數量。

>

> long keepAliveTime: 核心線程之外的臨時線程,能存活的時間。(從這個線程空閑的時候開始算)

>

> TimeUnit unit: 上面的時間單位

>

>  NANOSECONDS: 納秒

>

>  MICROSECONDS: 微秒

>

>  MILLISEONDS: 毫秒

>

>  SECONDS: 秒

>

>  MINUTES: 分

>

>  HOURS: 時

>

>  DAYS: 天

>

> BlockingQueue<Runnable> workQueue: 等待隊列

>

>  ArrayBlockingQueue

>

>  LinkedBlockingQueue

>

>   SynchronousQueue

>

> RejectedExecutionHandler handler:拒絕訪問策略

“大數據線程高級部分內容有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

远安县| 泌阳县| 广灵县| 枣强县| 南川市| 洛浦县| 桐乡市| 分宜县| 武隆县| 乐至县| 富民县| 白玉县| 峡江县| 景德镇市| 揭东县| 西充县| 岳池县| 蒙阴县| 鄂伦春自治旗| 松阳县| 温泉县| 封丘县| 新民市| 靖西县| 开化县| 彭州市| 南木林县| 崇阳县| 岐山县| 洮南市| 博湖县| 铜山县| 济南市| 保靖县| 翁源县| 西充县| 玉树县| 大同市| 香河县| 太谷县| 温泉县|