原创 Java併發編程之final應用
個人博客請訪問 http://www.x0100.top final在Java中是一個保留的關鍵字,可以修飾變量、方法和類。那麼fianl在併發編程中有什麼作用呢?本文就在對final常見應用總結基礎上,講解final併發
原创 Java併發編程之Java內存模型詳解
個人博客請訪問 http://www.x0100.top 1. JMM抽象結構模型 JMM抽象結構模型 JMM定義了線程和主內存之間的抽象關係: 線程之間的共享變量存儲在主內存中 每個線程都有一個私有的本地內存,本地內存
原创 Java併發編程之應用詳解
個人博客請訪問 http://www.x0100.top 1. 併發編程介紹 1.1 併發的出現 單CPU時代,單任務在一個時間點只能執行單一程序。 多任務階段,計算機能在同一時間點並行執行多進程。多個任務或進程共享
原创 Java併發編程之線程調度
個人博客請訪問 http://www.x0100.top 1. 優先級 每個線程執行時都有一個優先級的屬性,優先級高的線程可以獲得較多的執行機會,而優先級低的線程則獲得較少的執行機會。 操作系統採用時分的形式調
原创 Java併發編程之深入理解volatile
個人博客請訪問 http://www.x0100.top 1. 保證可見性 volatile保證了不同線程對volatile修飾變量進行操作時的可見性。 對一個volatile變量的讀,(任意線程)總是能看到對這個volat
原创 Java併發編程之線程狀態
個人博客請訪問 http://www.x0100.top 1. 創建啓動線程 兩種方法 創建和啓動線程兩種方法:繼承 Thread 類、實現 Runable 接口。 方法一:繼承 Thread public cl
原创 Java併發編程|重排序-可見性和有序性問題根源
個人博客請訪問 http://www.x0100.top 併發編程的三大問題:原子性、可見性、有序性。 緩存不能及時刷新導致了可見性問題。 編譯器爲了優化性能而改變程序中語句的先後順序,導致有序性問題。 而“緩存不能及時刷新“
原创 Java併發編程之synchronized鎖優化
個人博客請訪問 http://www.x0100.top 1. 爲什麼需要優化? synchronized監視器鎖在互斥同步上對性能的影響很大。 Java的線程是映射到操作系統原生線程之上的,如果要阻塞或喚醒一個線程就
原创 Java併發編程之LookSupport
個人博客請訪問 http://www.x0100.top java.util.concurrent 中源碼頻繁使用的 LockSupport 來阻塞線程和喚醒線程,如 AQS 的底層實現用到 LockSuppo
原创 Java併發編程之CAS應用
個人博客請訪問 http://www.x0100.top 1. CAS 介紹 CAS,Compare And Swap,即比較並交換。Doug lea 大神在同步組件中大量使用 CAS 技術鬼斧神工地實現了 Ja
原创 Java併發編程面試題彙總
個人博客請訪問 http://www.x0100.top 基礎知識 併發編程的優缺點 爲什麼要使用併發編程(併發編程的優點) 充分利用多核CPU的計算能力:通過併發編程的形式可以將多核CPU的計算能力發揮到極致,性能得到提升
原创 ElasticSearch深度分頁引發的機器性能問題
個人博客請訪問 http://www.x0100.top 深度分頁引發的機器性能問題 最近碰到一個ElasticSearch深度分頁搜索,導致cpu佔用過高問題,通過查閱ElasticSearch: 權威指南,瞭解到了深度分頁爲何會
原创 Java虛擬機(JVM)最新面試題彙總
個人博客請訪問 http://www.x0100.top Java內存區域 說一下 JVM 的主要組成部分及其作用? JVM包含兩個子系統和兩個組件,兩個子系統爲Class loader(類裝載)、Execution engine
原创 Java併發編程之併發編程三大核心問題
個人博客請訪問 http://www.x0100.top 寫在前面 編寫併發程序是比較困難的,因爲併發程序極易出現Bug,這些Bug有都是比較詭異的,很多都是沒辦法追蹤,而且難以復現。 要快速準確的發現並解決這些問題,首先就是要
原创 從Jedis看TCP常用的參數設置
個人博客請訪問 http://www.x0100.top 背景 由於微服務的興起,以及公司內部各種服務間的各種調用,最近也遇過幾次線上大量TIME_WAIT的問題,雖然知道怎麼解決,但也點燃了我對tcp