大家好,我是小米,今年 31 歲,一個在 Java 世界裏摸爬滾打多年的程序員大哥哥。 前幾天,我在幫朋友模擬社招面試的時候,面試官突然拋出一個問題: “你瞭解 Redis 的 RedLock 嗎?它解決了什麼問題?” 朋友愣了三秒鐘,憋出一句: “呃……分佈式鎖的一種實現?” 面試官點點頭,又補了一刀:
在現代Linux操作系統中,一個程序在運行時,進程是分配資源的基本單位,Linux內核先fork一個子進程,分配物理內存,然後將要執行的可執行文件加載到內存。每個進程都是相互獨立的,進程之間如果需要通信則需要藉助第三方工具。 不同的進程在切換運行時,CPU需要不停地保存現場、恢復現場,因此進程上下切換的開銷是很大的。所以如果程序要並行執行很多任務,
MySQL 的鎖機制:一篇讀懂所有鎖機制 介紹 在數據庫系統中,鎖機制是保證數據一致性和完整性的關鍵技術。MySQL 作為一種廣泛使用的開源數據庫管理系統,提供了多種類型的鎖機制來滿足不同場景下的併發控制需求。 應用使用場景 多用户系統:確保多個用户同時操作時的數據一致性。 事務處理:在事務中使用鎖以維護數據的原子性、隔離性。 索
從JDK 5升級到JDK 6後實現各種鎖優化技術如下: 適應性自旋(Adaptive Spinning) 鎖消除(Lock Elimination) 鎖膨脹(Lock Coarsening) 輕量級鎖(Lightweight Locking) 偏向鎖(Biased Locking) (注:自旋鎖在4的時候就有了,不過4
在上一篇博客中,我們見識了多線程“裸奔”(無同步機制)時導致的銀行賬户錯誤和打印亂碼。為了解決這些問題,我們需要引入一種機制,保證同一時刻只有一個線程能訪問共享資源。 這個機制就是互斥量(Mutex)。你可以把它想象成洗手間門上的鎖:“有人佔用,閒人免進”。 一、 互斥鎖的“使用説明書” 互斥鎖本質上是一個結構體 pthread