tag 併發編程

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

@併發編程 / 博客 RSS 訂閱

認真的紫菜 - Android面試題之Kotlin協程併發問題和互斥鎖

本文首發於公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點 Kotlin 語言提供了多種機制來處理併發和同步,其中包括高層次和低層次的工具。對於常規的併發任務,可以利用 Kotlin 協程提供的結構化併發方式。而對於需要更低層次的鎖定機制,可以使用 Mutex 來實現對共享資源的線程安全訪問。 Kotlin 協程與併發(Coroutine

Kotlin , 協程 , Android , 併發 , 併發編程

收藏 評論

不一樣的科技宅 - Java並行流:一次搞定多線程編程難題,讓你的程序飛起來!

前言   在日常的工作中,為了提高程序的處理速度,充分利用多核處理器的性能,我們需要手動編寫多線程代碼。但是多線程編程非常複雜,容易出現死鎖、競態條件等問題,給我們帶來了很大的困擾。而 Java 並行流則提供了一種更加簡單、易用、安全的併發編程方式,可以讓我們更加輕鬆地編寫高效的併發程序。 使用多線程下載文件 public class MultiThreadExample { publ

lambda , 多線程 , JAVA , 併發編程 , 後端

收藏 評論

字節幺零二四 - 併發編程 | Java中AQS的基本實現原理及簡單使用

AbstractQueuedSynchronizer(AQS),是阻塞式鎖和同步器工具的框架。本文將初步介紹Java中AQS的基本原理,並基於AQS實現自定義阻塞式不可重入鎖,以此來演示AQS的使用。下期會以 ReentrantLock 為例,從源碼的層面介紹 AQS 的核心實現 acquire() 方法。 AQS 的目標 提供阻塞式獲取鎖 acquire() 和非阻塞式嘗試獲取鎖 tryAc

JAVA , juc , 併發編程 , 後端

收藏 評論

尚戈繼 - 多線程服務器編程[3]-多線程服務器的使用場合和常用模型

本章研究對象:分佈式計算的網絡應用程序,基本功能可以被簡單歸納為“收到數據,算一算,發出去” 單線程服務器 最常用的為“non-blocking IO + IO multiplexing”,即Reactor模式,例如 lighttpd Nginx libevent Java NIO Twisted(Python) 此外還有ASIO使用的Proactor模式 Reactor 結構

c++ , 多線程 , 多進程 , reactor , 併發編程

收藏 評論

冰河 - 《深入理解高併發編程:JDK核心技術》-冰河新書上市

大家好,我是冰河~~ 廢話説多了沒用,併發編程技術一直是初級程序員進階高級工程師的前提條件,也是成為大廠程序員的必備技能,更是突破自身技術瓶頸的必經之路。 2022年6月我出版了“冰河技術叢書”之“深入理解高併發編程”系列的第1部作品——《深入理解高併發編程:核心原理與案例實戰》,書中全面細緻地介紹了高併發編程的基礎知識、核心原理、實戰案例和系統架構等內容,幫助讀者從根本上理解併發編程出現各種詭異

高併發 , 協程 , 多線程 , 異步編程 , 併發編程

收藏 評論

小小張説故事 - Python多線程編程入門指南

導語:在許多應用場景中,我們需要同時執行多個任務。Python 提供了多線程(multithreading)支持,可以讓我們更高效地完成任務。在本文中,我們將探討 Python 中的多線程編程基礎知識,並通過一個簡單示例演示如何使用它。 一、併發編程簡介 併發編程是一種編程範式,允許多個任務在同時執行。在多核處理器和多處理器系統中,這種方法可以顯著提高程序的執行效率。Python 提供了多種併發編

多線程 , 異步 , 併發編程 , Python

收藏 評論

冰河 - 高考成績都出來了,你的秒殺系統如何了?

大家好,我是冰河~~ 高考成績都出來了,咱的《Seckill秒殺系統》專欄如何了?今天給大家交個“期中作業”吧。 總體情況 截止到目前,秒殺系統從需求立項、架構設計、技術選型、環境搭建、編碼實現、極致緩存設計到扣減庫存防超賣設計,已經完成16個大的篇章47篇文章。 這是不是更新完了?那肯定沒啊!雖然現在的秒殺系統已經實現了最核心的功能,但是還不是我理想中的樣子,我想要大廠技術真正落地的秒殺系統。

高併發 , 協程 , 多線程 , 秒殺 , 併發編程

收藏 評論

冰河 - 又一個可以寫到簡歷的項目,嘎嘎強!

大家好,我是冰河~~ 分佈式IM即時通訊系統本質上就是對線上聊天和用户的管理,針對聊天本身來説,最核心的需求就是:發送文字、圖片、文件、語音、視頻、消息緩存、消息存儲、消息未讀、已讀、撤回,離線消息、歷史消息、單聊、羣聊,多端同步,以及其他一些需求。 對用户管理來説,存在的需求包含:添加好友、查看還有列表、刪除好友、查看好友信息、創建羣聊、加入羣聊、查看羣成員信息、退出羣聊、修改羣暱稱、拉人進羣、

高併發 , 微服務 , 系統架構 , 分佈式 , 併發編程

收藏 評論

編程碼農 - 學習Go語言併發編程

關於併發 Go 語言的創始人Rob Pike 曾説過:並行關乎執行,併發關乎結構。他認為: • 併發是一種程序設計方法:將一個程序分解成多個小片段,每個小片段獨立執行;併發程序的小片段之間可以通過通信相互協作。 • 並行是有關執行的,它表示同時進行一些計算任務。 程序小片段之間通訊不同語言實現不同,比如:傳統語言Java使用共享內存方式達到線程之間通訊,而Go語言channel來進行通

併發 , 併發編程 , go

收藏 評論

冰河 - 互聯網大廠的緩存策略:抵抗超高併發的秘密武器,已開源!

大家好,我是冰河~~ 最近,有小夥伴私信我:冰哥,我最近出去面試,面試官問我如何設計緩存能讓系統在百萬級別流量下仍能平穩運行,我當時沒回答上來。接着,面試官問我之前的項目是怎麼使用緩存的,我説只是緩存了一些數據。當時確實想不到緩存還有哪些用處,估計這次面試是掛了。冰哥,你可以給我講講互聯網大廠項目是怎麼設計和使用緩存的嗎? 本文緩存方案已經開源,開源地址如下,如果開源方案對你有點幫助或者啓發,

高併發 , 系統架構 , 程序員 , 架構師 , 併發編程

收藏 評論

京東雲開發者 - ReentrantLock源碼解析 | 京東雲技術團隊

併發指同一時間內進行了多個線程。併發問題是多個線程對同一資源進行操作時產生的問題。通過加鎖可以解決併發問題,ReentrantLock是鎖的一種。 1 ReentrantLock 1.1 定義 ReentrantLock是Lock接口的實現類,可以手動的對某一段進行加鎖。ReentrantLock可重入鎖,具有可重入性,並且支持可中斷鎖。其內部對鎖的控制有兩種實現,一種為公平鎖,另一種為非公平鎖.

, reentrantreadwritelock , 源碼分析 , 併發編程 , 後端

收藏 評論

字節幺零二四 - 源碼解讀 | Java中ReentrantLock的實現原理

ReentrantLock 依賴關係如下圖所示 非公平鎖實現原理 ReentrantLock 默認採用非公平鎖。 // ReentrantLock public ReentrantLock() { sync = new NonfairSync(); } 加鎖流程 ReentrantLock 的 lock 方法通過同步器的 lock 方法實現。 // ReentrantLock publi

JAVA , 併發 , juc , 併發編程

收藏 評論

字節幺零二四 - 源碼解讀 | Java中ReentrantReadWriteLock的實現原理

本文將介紹Java中ReentrantReadWriteLock的實現原理,從JDK源碼層面講解讀寫鎖的加鎖、釋放鎖的流程,最後對流程進行總結。 讀寫鎖概述 讀寫鎖 ReentrantReadWriteLock 的依賴關係如下圖所示。 讀寫鎖的基本使用如下 ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); Reentrant

源碼 , JAVA , juc , 併發編程

收藏 評論

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

首發地址:https://mp.weixin.qq.com/s/-FtDLcHW39vgvqSMUVM-yw 前段時間我在《Go 併發控制:errgroup 詳解》一文中講解了 errgroup 的用法和源碼,通過源碼我們知道 errgroup 內部是使用 sync.WaitGroup 實現的,那麼本文就更進一步,來探索下 sync.WaitGroup 源碼是如何實現的。 使用示例 sync.Wa

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

收藏 評論

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

我們知道,Go 中的 map 類型是非併發安全的,所以 Go 就在 sync 包中提供了 map 的併發原語 sync.Map,允許併發操作,本文就帶大家詳細解讀下 sync.Map 的原理。 使用示例 sync.Map 提供了基礎類型 map 的常用功能,使用示例如下: package main import ( "fmt" "sync" ) func main() {

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

收藏 評論

江湖十年 - Go 併發編程:如何實現一個併發安全的 map

上週發佈的文章「Go 併發控制:sync.Map 詳解」有讀者反饋説我寫的太難了,上來就挑戰源碼,對新手不夠友好。所以這篇文章算作補充,從入門到進階的順序講解一下在 Go 中如何自己實現一個併發安全的 map。 內置 map 首先,我們來測試一下 Go 語言內置 map 併發安全性,示例如下: https://github.com/jianghushinian/blog-go-example/tr

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

收藏 評論

異常君 - 深入剖析 Java 併發容器:解鎖 ConcurrentHashMap 底層原理與高性能實戰應用

1. 併發容器的歷史 大家好,今天我們來聊一個 Java 多線程開發中繞不開的核心話題:併發容器。可能你已經發現,當我們在多線程環境中使用 HashMap、ArrayList 這些集合類時,經常會遇到ConcurrentModificationException或數據不一致的問題,這就是因為這些普通集合類不是線程安全的。 JDK 提供的傳統解決方案是Collections.synchronized

concurrenthashmap , JAVA , 併發 , 併發編程 , 後端

收藏 評論

異常君 - Java 併發編程揭秘:聽我説 happens-before 規則

多線程編程就像走鋼絲,一不小心就掉下去。而 Java 的 happens-before 規則,就是那根讓你穩穩走過去的平衡杆。今天我把這個看起來很深奧的概念拆開來講,讓你真正明白它為啥這麼重要,以及怎麼用它來解決實際問題。 你的代碼可能根本不是按你想的順序執行的! 看這段代碼: int a = 1; int b = 2; int c = a + b; 你以為它就是按這個順序執行的?天真了!JVM

多線程 , JAVA , 併發 , 併發編程 , 後端

收藏 評論

江湖十年 - 使用 Uber automaxprocs 正確設置 Go 程序線程數

公眾號首發地址:https://mp.weixin.qq.com/s/5wrYaHXBpuN0WxKAaNNp-A 我們知道 Go 語言沒有直接對用户暴露線程的概念,而是通過 goroutine 來控制併發。不過,在 Go 程序啓動時,其背後的調度器往往是多線程運行的。在 Go 語言的 GMP 調度模型中,P 決定着同時運行的 goroutine 數,我們可以通過環境變量 GOMAXPROCS 或

面試 , 容器技術 , 併發編程 , go , 後端

收藏 評論

Josie - ArkTS 併發日誌系統實現:TaskPool + AsyncLock 實戰解析

🧩 ArkTS 併發日誌系統實現:TaskPool + AsyncLock 實戰解析 本文基於官方文檔 TaskPool 併發機制介紹 ArkTS 異步鎖 API 參考 結合實際工程實踐,展示了在 HarmonyOS ArkTS 中構建高性能、線程安全的日誌系統的方法。 一、背景:為什麼採用併發寫日誌 日誌系統通常是高頻調用且 IO 密集的模塊。傳統實現中,

harmonyos-next , harmonyos , typescript , 併發編程 , Javascript

收藏 評論

qq68d2318712d49 - java 面試題目10道

下面我將為你提供 10道經典Java面試題,並附上 參考答案和考察點,這些題目在面試中高頻出現,涵蓋了Java基礎、集合、多線程、JVM等核心知識點。 Java面試題目10道 1. 請解釋Java中的多態性及其實現方式 參考答案: 多態性是指同一個方法名在不同對象上有不同的實現方式。 實現方式:

抽象類 , JAVA , Css , 前端開發 , 併發編程 , 後端 , HTML

收藏 評論

異常君 - Java 併發編程必懂的隱形殺手:指令重排深度剖析

前段時間在做一個電商訂單系統的性能優化時,遇到了一個讓我抓狂的多線程問題。明明代碼邏輯很嚴謹,但在高併發場景下就是會隨機出現數據不一致。排查了整整三天後才發現,原來是 Java 中默默存在的"指令重排"在作怪。 今天我就把這個坑分享出來,從原理到實戰,聊聊 Java 中的指令重排到底是什麼、為什麼會發生,以及實際開發中如何規避這個隱形殺手。 什麼是指令重排? 簡單説,指令重排是 JVM 和 CPU

JAVA , final , volatile , 併發編程 , 後端

收藏 評論

程序員木木熊 - 【一文讀懂】你也要用ThreadLocal嗎?ThreadLocal源碼解析

🐻大家好,我是木木熊 🌍️公眾號:「程序員木木熊 」 本文以學習交流和分享為目的,如有不正確的地方,歡迎大家批評指正!! 前“戲” 一直996寫代碼的猿猿/媛媛們,你們是否經常出現,以下症狀: 線上問題找不到日誌,日誌無法串聯,問題定位困難 方法調用鏈路長,數據傳遞不暢 長期使用SimpleDateFormat,導致時間混亂 分頁插件PageHelper問題頻發

threadlocal , JAVA , 併發編程

收藏 評論

Swift社區 - 併發編程任務調度指南:從算法到優化,打造高性能系統

摘要 任務調度是併發編程中的核心問題,合理的調度策略能夠顯著提升系統性能。本文將深入探討常見的任務調度算法,如FIFO、優先級調度等,分析其適用場景和優缺點。同時,我們將提供任務調度的實現方案和性能優化建議,並通過可運行的示例代碼幫助讀者更好地理解這些概念。 引言 在併發編程中,任務調度是指如何將多個任務分配給有限的資源(如CPU、線程等)以最大化系統性能和資源利用率。不合理的調度策略可能導致資源

併發編程 , Python

收藏 評論