jdk中的鎖

    jdk中的鎖分爲兩種:synchronized關鍵字和lock接口。
    synchronized原理涉及三種鎖概念:偏向鎖、輕量級鎖、重量級鎖,本質是個鎖升級(膨脹)的過程,由此保證了synchronized關鍵字當前的高性能。
    偏向鎖:若對象只有1個線程請求,將鎖直接分配給該線程;
    輕量級鎖:若對象有2個線程請求,線程競爭時的等待使用cas(自旋鎖、樂觀鎖的概念);
    重量級鎖:若對象被2個以上的線程請求,出現競爭時將阻塞等待中的線程;
    lock接口的原理是工具:aqs(隊列同步器),aqs的三個組成部分:狀態、隊列、cas,lock接口的實現類包括:重入鎖、讀寫鎖,涉及到鎖的概念:公平/非公平鎖、共享/排他鎖。
    公平鎖:由隊列實現,保證公平性;
    重入鎖:由狀態實現;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章