1. 程式人生 > >死磕 java執行緒系列之終篇

死磕 java執行緒系列之終篇

(手機橫屏看原始碼更方便)


簡介

執行緒系列我們基本就學完了,這一個系列我們基本都是圍繞著執行緒池在講,其實關於執行緒還有很多東西可以講,後面有機會我們再補充進來。當然,如果你有什麼好的想法,也可以公從號右下角聯絡我。

重要知識點

直接上圖,看著這張圖我相信你能夠回憶起很多東西,也可以看著這張圖來自己提問自己回答,當然,也可以把這張圖作為面試複習的參考。

其中,ThreadLocal是我們沒有分析的類,放在netty系列來學習,敬請期待^^

彩蛋

下一個系列我們將學習netty相關的知識,當然跑不掉的還有nio。

我為什麼直接講netty了呢?

因為netty很重要,很多框架的底層都是用netty實現的,比如dubbo、spark、hadoop、storm、zookeeper、grpc、flink、thrift、elasticsearch、spring cloud gateway。

只要牽涉到網路通訊的框架,基本上都會使用netty作為底層通訊,所以,你說netty重不重要,那是相當的重要,so,我們先講netty。

我為什麼不講spring系列呢?

spring系列主要分為三大部分:spring core、spring boot、spring cloud。

spring core主要包含兩大功能:spring IoC和spring mvc,這兩個功能其實都是比較簡單的東西,無非就是一些概念性的東西。

我舉個例子,spring IoC牽涉的東西有Loading XML、BeanFactoryPostProcessor、Instantiate Bean前中後、Initialize Bean前中後、BeanPostProcessor、AOP、XxxAware、迴圈引用、init-method等等,其實AOP只是IoC過程中的一個BeanPostProcessor,還有很多很多的概念,如果這些概念你不清楚,直接去看IoC的過程會很痛苦,所以我建議想看spring原始碼的同學先去把官方文件擼一遍,做到這些概念心中有數,這樣看起來才比較輕鬆。相對於這些花裡胡哨的概念,說實話,我還是更願意研究一些底層的東西,當然,如果後面有時間我也會寫幾章關於spring的原始碼分析。

spring boot相當於在spring core的基礎上設定了一系列的預設值,然後還加入了一些更靈活的註解來暴露自定義的實現,其實也是偏應用型的。

spring cloud這就更偏應用了,這邊的元件拿過來融合一下,那邊的元件融合一下,最後就成了spring cloud。

最後,我想說spring系列的概念實在是太多了,可以聊好幾個月,而且市面上關於spring的解析實在是太多了,我想大家去看看那些文章也差不多了。

其它意向?

還有資料結構和設計模式也是我特別想講的東西,後面有可能會穿插在netty系列中偶爾來上一兩篇,就像講集合的時候我們詳細講過跳錶、紅黑樹、堆那樣。


歡迎關注我的公眾號“彤哥讀原始碼”,檢視更多原始碼系列文章, 與彤哥一起暢遊原始碼的海洋。

相關推薦

java執行系列

(手機橫屏看原始碼更方便) 簡介 執行緒系列我們基本就學完了,這一個系列我們基本都是圍繞著執行緒池在講,其實關於執行緒還有很多東西可以講,後面有機會我們再補充進來。當然,如果你有什麼好的想法,也可以公從號右下角聯絡我。 重要知識點 直接上圖,看著這張圖我相信你能夠回憶起很多東西,也可以看著這張圖來自己提

java執行系列執行模型

(2)執行緒模型有哪些? (3)各語言使用的是哪種執行緒模型? 簡介 在Java中,我們平時所說的併發程式設計、多執行緒、共享資源等概念都是與執行緒相關的,這裡所說的執行緒實際上應該叫作“使用者執行緒”,而對應到作業系統,還有另外一種執行緒叫作“核心執行緒”。 使用者執行緒位於核心之上,它的管理無需核心支援

java執行系列建立執行的8種方式

問題 (1)建立執行緒有哪幾種方式? (2)它們分別有什麼運用場景? 簡介 建立執行緒,是多執行緒程式設計中最基本的操作,彤哥總結了一下,大概有8種建立執行緒的方式,你知道嗎? 繼承Thread類並重寫run()方法 public class CreatingThread01 extends Thread

java執行系列自己動手寫一個執行

歡迎關注我的公眾號“彤哥讀原始碼”,檢視更多原始碼系列文章, 與彤哥一起暢遊原始碼的海洋。 (手機橫屏看原始碼更方便) 問題 (1)自己動手寫一個執行緒池需要考慮哪些因素? (2)自己動手寫的執行緒池如何測試? 簡介 執行緒池是Java併發程式設計中經常使用到的技術,那麼自己如何動手寫一個執行緒池呢?本

java執行系列自己動手寫一個執行池(續)

(手機橫屏看原始碼更方便) 問題 (1)自己動手寫的執行緒池如何支援帶返回值的任務呢? (2)如果任務執行的過程中丟擲異常了該

java執行系列執行池深入解析——體系結構

(手機橫屏看原始碼更方便) 注:java原始碼分析部分如無特殊說明均基於 java8 版本。 簡介 Java的執行緒池是塊硬骨頭,對執行緒池的原始碼做深入研究不僅能提高對Java整個併發程式設計的理解,也能提高自己在面試中的表現,增加被錄取的可能性。 本系列將分成很多個章節,本章作為執行緒池的第一章將對

java執行系列執行池深入解析——生命週期

(手機橫屏看原始碼更方便) 注:java原始碼分析部分如無特殊說明均基於 java8 版本。 注:執行緒池原始碼部分如無特殊說明均指ThreadPoolExecutor類。 簡介 上一章我們一起重溫了下執行緒的生命週期(六種狀態還記得不?),但是你知不知道其實執行緒池也是有生命週期的呢?! 問題 (1)

java執行系列執行池深入解析——普通任務執行流程

(手機橫屏看原始碼更方便) 注:java原始碼分析部分如無特殊說明均基於 java8 版本。 注:執行緒池原始碼部分如無特殊說明均指ThreadPoolExecutor類。 簡介 前面我們一起學習了Java中執行緒池的體系結構、構造方法和生命週期,本章我們一起來學習執行緒池中普通任務到底是怎麼執行的。

java執行系列執行池深入解析——未來任務執行流程

(手機橫屏看原始碼更方便) 注:java原始碼分析部分如無特殊說明均基於 java8 版本。 注:執行緒池原始碼部分如無特殊說明均指ThreadPoolExecutor類。 簡介 前面我們一起學習了執行緒池中普通任務的執行流程,但其實執行緒池中還有一種任務,叫作未來任務(future task),使用它

java執行系列執行池深入解析——定時任務執行流程

(手機橫屏看原始碼更方便) 注:java原始碼分析部分如無特殊說明均基於 java8 版本。 注:本文基於ScheduledThreadPoolExecutor定時執行緒池類。 簡介 前面我們一起學習了普通任務、未來任務的執行流程,今天我們再來學習一種新的任務——定時任務。 定時任務是我們經常會用到的一

java執行系列模式|第一-Guarded Suspension pattern

Guarded Suspension pattern模式 作者注:該系列文章基於《java執行緒設計模式》撰寫,只用於學習和交流。 定義:多執行緒執行,當前執行緒沒有達到警戒條件時,執行緒會進入等待直到

java執行系列模式|第三: Producer-Consumer pattern

生產者-消費者模式 含義:顧名思義,生產者用來生產資料,可能有一到多個,消費者用來消費資料,也可能有多個,中間會有一個“橋樑參與者”,作為資料的存放以及執行緒之間的同步和協調。 範例程式行為: 廚師(MakerThread)做蛋糕,做好後放在桌子(Table)上 桌子

執行系列 java執行的個人理解(二)

  前言:上一篇多執行緒系列之 java多執行緒的個人理解(一) 講到了執行緒、程序、多執行緒的基本概念,以及多執行緒在java中的基本實現方式,本篇主要接著上一篇繼續講述多執行緒在實際專案中的應用以及遇到的諸多問題和解決方案

【小家javaJava執行---ForkJoinPool執行池的使用以及原理

相關閱讀 【小家java】java5新特性(簡述十大新特性) 重要一躍 【小家java】java6新特性(簡述十大新特性) 雞肋升級 【小家java】java7新特性(簡述八大新特性) 不溫不火 【小家java】java8新特性(簡述十大新特性) 飽受讚譽 【小家java】java9

Java執行Threadinterrupt中斷解析

轉載請標明出處: http://blog.csdn.net/hesong1120/article/details/79164445 本文出自:hesong的專欄 這一篇我們說說Java執行緒Thread的interrupt中斷機制。 interrupt之中斷狀態

Java執行Threadyeild方法解析

轉載請標明出處: http://blog.csdn.net/hesong1120/article/details/79032252 本文出自:hesong的專欄 Java執行緒Thread的yeild方法可能在日常使用中比較少出現,那它是做什麼用的,我們先查查官方文

java concurrent包系列(一)從樂觀鎖、悲觀鎖到AtomicInteger的CAS演算法

前言 Java中有各式各樣的鎖,主流的鎖和概念如下: 這篇文章主要是為了讓大家通過樂觀鎖和悲觀鎖出發,理解CAS演算法,因為CAS是整個Concurrent包的基礎。 樂觀鎖和悲觀鎖 首先,java和資料庫中都有這種概念,他是一種從執行緒同步的角度上看的一種廣義上的概念: 悲觀鎖:悲觀的認為自己在使用資料的

Java執行系列

01-Java執行緒的6種狀態及切換(透徹講解) https://blog.csdn.net/pange1991/article/details/53860651 02-wait和sleep的區別 https://blog.csdn.net/a58220655/article/detai

java concurrent包系列(三)基於ReentrantLock理解AQS的條件佇列

基於Codition分析AQS的條件佇列 前言 上一篇我們講了AQS中的同步佇列佇列,現在我們研究一下條件佇列。 在java中最常見的加鎖方式就是synchorinzed和Reentrantlock,我們都說Reentrantlock比synchorinzed更加靈活,其實就靈活在Reentrantlock中

Java執行ThreadPoolExecutor原始碼分析

一、引言 Java併發工具包自帶了很多常用的執行緒池,程式可以將定義的Runnable、Callable任務提交到執行緒池當中執行,由執行緒池負責非同步執行其中的任務。 Java執行緒池框架結構圖: 其中,Executors是一個執行緒池靜態工廠類,可以呼叫其