tag 併發編程

標籤
貢獻22
98
10:04 AM · Nov 03 ,2025

@併發編程 / 博客 RSS 訂閱

lane - ReentrantLock 原理解析

ReentrantLock 可重入鎖 字面意思理解為同一線程可以重入加鎖 AbstractQueuedSynchronizer 源碼解析 可以先看這篇文章瞭解AQS原理 內部主要邏輯繼承AQS來實現的,有兩種實現FairSycn、NonfairSync,公平鎖和非公平鎖,默認為非公平鎖。 公平鎖:保證先入隊的先獲得鎖。 非公平鎖:不保證先入隊的先獲得鎖,可能後面的線程先搶到鎖。 主

, JAVA , 併發編程

收藏 評論

字節幺零二四 - 併發編程:Java線程狀態及其轉換

線程狀態 操作系統層面,線程分為五種狀態 創建狀態:線程正在被創建,包括申請資源、分配空間等操作。 就緒狀態:已獲得除 CPU 外的一切所需資源。 運行狀態:獲得 CPU 正在運行。 阻塞狀態:因等待某一事件而暫停運行,如等待 I/O 操作完成。 終止狀態:執行完畢,正在進行資源釋放等操作。 Java API 層面,線程分為六種狀態 NEW:語言層面創建了線程對象,未與操作

JAVA , juc , 併發編程

收藏 評論

mghio - Go 併發模型—Goroutines

前言 Goroutines 是 Go 語言主要的併發原語。它看起來非常像線程,但是相比於線程它的創建和管理成本很低。Go 在運行時將 goroutine 有效地調度到真實的線程上,以避免浪費資源,因此您可以輕鬆地創建大量的 goroutine(例如每個請求一個 goroutine),並且您可以編寫簡單的,命令式的阻塞代碼。因此,Go 的網絡代碼往往比其它語言中的等效代碼更直接,更容易理解(這點從下

goroutine , 併發模型 , 併發編程 , go

收藏 評論

江湖十年 - Go 併發控制:semaphore 詳解

今天我們來介紹一個 Go 官方庫 x 提供的擴展併發原語 semaphore,譯為“信號量”。因為它就像一個信號一樣控制多個 goroutine 之間協作。 概念講解 我先簡單介紹下信號量的概念,為不熟悉的讀者作為補充知識。 一個生活中的例子:假設一個餐廳總共有 10 張餐桌,每來 1 位顧客佔用 1 張餐桌,那麼同一時間共計可以有 10 人在就餐,超過 10 人則需要排隊等位;如果有 1 位顧客

面試 , 信號量 , 併發編程 , go , 後端

收藏 評論

程序員伍六七 - Reactor 第九篇 WebFlux重構個人中心,效果顯著

1 重構背景 原有的開發人員早已離職,代碼細節沒人知道,經過了一段時間的維護,發現有以下問題: 個人中心繫統的特徵就是組裝各個業務的接口,輸出個人中心業務需要的數據,整個系統調用了幾十個第三方業務線的接口,如果編排不合理,可能會導致響應時間急劇上漲,尤其是彈窗業務,新的彈窗會不斷接入,整個接口可能會不可用。 2 整體架構 service:是最小的業務編排單元,request方法對infrast

響應式編程 , JAVA , 併發編程 , 重構 , 後端

收藏 評論

江湖十年 - Go 併發控制:sync.Cond 詳解

公眾號首發地址:https://mp.weixin.qq.com/s/c1C2rv3nGCtnfm2n34K6VQ 在 Go 中因為 channel 的存在,sync.Cond 併發原語並不常用。不過在一些開源組件中還能能見到 sync.Cond 的應用,比如 Kubernetes 用它來實現併發等待隊列,這也是 sync.Cond 的典型應用場景。本文將通過源碼和示例帶你學會 sync.Cond

併發原語 , 面試 , 併發編程 , go , 後端

收藏 評論

江湖十年 - Go 併發控制:errgroup 詳解

本文公眾號地址:https://mp.weixin.qq.com/s/kqfIPS77B_LWLf5h4dLDGw errgroup 是 Go 官方庫 x 中提供的一個非常實用的工具,用於併發執行多個 goroutine,並且方便的處理錯誤。 我們知道,Go 標準庫中有個 sync.WaitGroup 可以用來併發執行多個 goroutine,errgroup 就是在其基礎上實現了 errgrou

面試 , 併發模型 , 併發編程 , go , 後端

收藏 評論

lane - AbstractQueuedSynchronizer 源碼解析

AbstractQueuedSynchronizer簡稱AQS,ReentrantLock,ReentrantReadWriteLock,CountDownLatch,Semaphore等等這些鎖都是基於AQS實現的。AQS核心主要實現了鎖的狀態的同步,隊列排隊、喚醒管理,鎖的釋放等底層功能。主要基於state屬性來控制鎖的可用狀態,通過維護一個CLH雙向鏈表隊列來管理併發獲取鎖的線程進行排隊。

, 同步鎖 , JAVA , 併發編程

收藏 評論

一無是處的研究僧 - OpenMP task construct 實現原理以及源碼分析

OpenMP task construct 實現原理以及源碼分析 前言 在本篇文章當中主要給大家介紹在 OpenMP 當中 task 的實現原理,以及他調用的相關的庫函數的具體實現。在本篇文章當中最重要的就是理解整個 OpenMP 的運行機制。 從編譯器角度看 task construct 在本小節當中主要給大家分析一下編譯器將 openmp 的 task construct 編譯成什麼樣子,下面

gcc , openmp , 併發編程

收藏 評論

flydean - 在nodejs中創建child process

簡介 nodejs的main event loop是單線程的,nodejs本身也維護着Worker Pool用來處理一些耗時的操作,我們還可以通過使用nodejs提供的worker_threads來手動創建新的線程來執行自己的任務。 本文將會介紹一種新的執行nodejs任務的方式,child process。 child process lib/child_process.js提供了child_p

node.js , event , 多線程 , 併發編程

收藏 評論

Swift社區 - 多線程編程的隱形陷阱:競態、死鎖與活鎖的實戰解決方案

摘要 併發編程是現代軟件開發中不可或缺的一部分,但它也帶來了許多挑戰。本文將探討併發編程中的常見陷阱,如競態條件、死鎖和活鎖,分析其成因,並提供有效的調試技巧和工具。通過實際案例和可運行的示例代碼,我們將展示如何避免和解決這些問題。 引言 隨着多核處理器的普及,併發編程變得越來越重要。然而,併發編程中的問題往往難以發現和調試。競態條件、死鎖和活鎖等問題不僅影響程序的正確性,還可能導致嚴重的性能問題

死鎖 , JAVA , 併發編程

收藏 評論

江湖十年 - Go 併發控制:singleflight 詳解

singleflight 是 Go 官方擴展庫 x 中提供的擴展併發原語,能夠將多個併發請求合併為一個,降低服務端壓力。本文就來介紹下它的用法和實現原理。 請求合併 singleflight 主要用於抑制重複的併發調用,從而避免對同一資源進行重複操作,提升系統性能。 比如,當我們有多個 goroutine 併發調用一個同一個函數時,singleflight 能夠實現只讓一個 goroutine 發

併發原語 , 面試 , 併發編程 , go , 後端

收藏 評論

木元走之 - Java內存模型(JMM)

1.背景JMM(Java Memory Model)的提出,主要基於以下的幾種原因:不同操作系統平台的內存模型不同,而Java又想做到Write Once Run Everywhere(即跨平台),那麼必須要自己提供一套內存模型以屏蔽不同操作系統在內存模型方面的差異。由於除了編譯器層面可以進行指令重排外,處理器層面也可以,儘管指令重排在一定程度上能夠提升程序運行的效率,但這僅限於單線程環境下,一旦

內存 , jmm , java-ee , JAVA , 併發編程

收藏 評論

7mandy7 - Golang都有哪些值得推薦的學習資料

前面幾篇文章,給大家總結了一些關於Golang中不錯的開源框架、開源庫等相關的內容。今天接着給分享一些不錯的學習資源內容。同時也會分享一些優質的教學視頻、高質量的電子書籍。想獲取該文檔、視頻,可以通過下面的文章鏈接,進入公眾號菜單,聯繫號主。 你應該知道的17個Golang包 Go開發的linux、數據庫、redis、mongo統一管理操作平台 使用Go開源的一款性能監控軟件 使用 Go

協程 , 學習資料 , 併發編程 , go

收藏 評論

江湖十年 - Go 併發控制:sync.Once 詳解

公眾號首發地址:https://mp.weixin.qq.com/s/ijAjiCdpb7BhRQwEa2BN3Q 在 Go 語言的併發編程中,常常會遇到需要確保某個操作僅執行一次的場景。sync.Once 是 Go 標準庫中的一個簡單而強大的工具,專門用於解決這種需求。本文將深入解析 sync.Once 的使用方法和原理,幫助你更好地理解 sync.Once 在併發控制中的用法。 sync.On

面試 , 併發模型 , 併發編程 , go , 後端

收藏 評論

半夏之沫 - ✨優雅終止✨Java線程

大家好,我是半夏之沫 😁😁 一名金融科技領域的JAVA系統研發😊😊 我希望將自己工作和學習中的經驗以最樸實,最嚴謹的方式分享給大家,共同進步👉💓👈 👉👉👉👉👉👉👉👉💓寫作不易,期待大家的關注和點贊💓👈👈👈👈👈👈👈👈 👉👉👉👉👉👉👉👉💓關注微信公眾號【技術探界】 💓👈👈👈👈👈👈👈👈 前言

JAVA , 併發編程

收藏 評論