@後端

動態 列表
@jianghushinian

Go 併發控制:sync.Map 詳解

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

jianghushinian 頭像

@jianghushinian

昵稱 江湖十年

@jianghushinian

Go 併發編程:如何實現一個併發安全的 map

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

jianghushinian 頭像

@jianghushinian

昵稱 江湖十年

@jianghushinian

在 Go 中如何使用分佈式鎖解決併發問題?

在分佈式系統中,協調多個服務實例之間的共享資源訪問是一個經典的挑戰。傳統的單機鎖(如 sync.Mutex)無法實現跨進程工作,此時就需要用到分佈式鎖了。本文將介紹 Go 語言生態中基於 Redis 實現的分佈式鎖庫 redsync,並探討其使用方法和實現原理。 分佈式鎖 首先我們來探討下為什麼需要分佈式鎖?當我們編寫的程序出現資源競爭的時候,就需要使用互斥鎖來保證併發安全。而我們的服務很有可能不

jianghushinian 頭像

@jianghushinian

昵稱 江湖十年

@chen_67f9ccbe6f07b

Java併發問題排查實戰手冊:死鎖與活鎖診斷與解決全流程

一、引言 併發編程就像是在廚房裏同時炒 10 道菜 - 看似效率提高了,但一不小心就會手忙腳亂。作為 Java 後端開發,我們經常為併發問題頭疼不已:生產環境突然卡死,線程 CPU 使用率飆升卻沒有業務進展,各種監控工具報警...而當你想復現問題時,它又像幽靈一樣"按鬧分配",讓人抓狂。 併發 BUG 難以排查的原因主要有三: 不確定性:同樣的代碼,運行 10 次可能只出現 1 次問題 複雜

chen_67f9ccbe6f07b 頭像

@chen_67f9ccbe6f07b

昵稱 異常君

@chen_67f9ccbe6f07b

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

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

chen_67f9ccbe6f07b 頭像

@chen_67f9ccbe6f07b

昵稱 異常君

@niandou

腦抽研究生Go併發-1-基本併發原語-下-Cond、Once、Map、Pool、Context

Once 單例對象:在整個應用程序的生命週期中,只有一個實例存在,並提供一個全局統一的訪問點來獲取這個唯一的實例 應用場景:數據庫連接池,全局配置管理器,日誌記錄器 (Logger) Once 是在 Go 語言中實現線程安全的單例模式的完美且最地道的工具 使用 Once 可能出現的 2 種錯誤 第一種錯誤:死鎖 ​ once.Do()中再次調用once.Do() 第二種錯誤

niandou 頭像

@niandou

昵稱 粘豆煮包

@apifox

Less基礎使用秘籍,讓你的CSS更高效!

Less(Leaner Style Sheets 的縮寫) 是一門向後兼容的 CSS 擴展語言。,它擴展了CSS(層疊樣式表)的功能並提供了更靈活、更強大的樣式定義和管理機制。通過使用 Less,開發人員可以編寫可維護、可重用的樣式代碼,並以簡潔的語法實現複雜的樣式效果。本文將介紹 Less 的基本概念和特性,以及如何使用它來簡化 CSS 開發過程。想要學習更多的知識,可訪問 犀牛書 的 Less

apifox 頭像

@apifox

昵稱 Apifox

@emanjusaka

淺析 ArrayList

byemanjusaka fromhttps://www.emanjusaka.com/2023/12/java-arrayList彼岸花開可奈何 本文歡迎分享與聚合,全文轉載請留下原文地址。 ArrayList是一個使用List接口實現的Java類。顧名思義,Java ArrayList提供了動態數組的功能,其中數組的大小不是固定的。它實現了所有可選的列表操作,並允許所有元素,包括n

emanjusaka 頭像

@emanjusaka

昵稱 emanjusaka

@wuliaodeliema

《進大廠前先學會閲讀源碼》之shenyu網關-替換ZooKeeper客户端

相信大家碰到源碼一開始都是比較無從下手的🙃,不知道從哪開始閲讀,面對大量代碼暈頭轉向,索性就讀不下去了,又浪費了一次提升自己的機會😭。 我認為有一種方法,可以解決大家的困擾!那就是通過閲讀某一次開源【commit】、某一次社區【ISSUE】,從這個入口出發去閲讀源碼!! 至此,我們發現自己開始從大量堆砌的源碼中脱離開來😀。豁然開朗,柳暗花明又一村🍀。 一、前瞻 今天我們攻克的一次

wuliaodeliema 頭像

@wuliaodeliema

昵稱 愛思考的小陳

@zhujiqian

Mybatis Plus 3.X版本的insert填充自增id的IdType.ID_WORKER策略源碼分析

總結/朱季謙 某天同事突然問我,你知道Mybatis Plus的insert方法,插入數據後自增id是如何自增的嗎? 我愣了一下,腦海裏只想到,當在POJO類的id設置一個自增策略後,例如@TableId(value = "id",type = IdType.ID_WORKER)的註解策略時,就能實現在每次數據插入數據庫時,實現id的自增,例如以下形式—— @Data @AllArgsConstr

zhujiqian 頭像

@zhujiqian

昵稱 朱季謙

@jianghushinian

Go 源碼是如何解決測試代碼循環依賴問題的?

公眾號首發地址:https://mp.weixin.qq.com/s/j5vKNxl2keMF7oPT5M0XnA 最近我寫了一篇講解 context 包源碼的文章《Go 併發控制:context 源碼解讀》,在閲讀源碼的過程中,我在 context 包測試代碼中發現了一個解決循環依賴的小技巧,在此分享給大家。 x_test.go 解決循環依賴 context 包源碼目錄結構如下: https:/

jianghushinian 頭像

@jianghushinian

昵稱 江湖十年

@buildyuan

使用php-imap查詢操作郵件收件箱

最近在業務場景裏有接收解析用户主動發送的郵件,使用php-imap實現了這一需求,記錄一下。 確定實現方式 讀取郵件的協議有POP3和IMAP兩種,區別:POP3協議允許電子郵件客户端下載服務器上的郵件,但是在客户端的操作,不會反饋到服務器上。IMAP提供webmail與電子郵件客户端之間的雙向通信,客户端的操作都會反饋到服務器上,對郵件進行的操作,服務器上的郵件也會做相應的動作。 需求要求處理完

buildyuan 頭像

@buildyuan

昵稱 buildyuan

@shuyixiaobututou

撕碎語法教科書!PandaCoder教大模型「暴力越獄」逐字翻譯

⚔️ 為什麼發動這場「熊貓起義」? 插件介紹的處女篇:https://mp.weixin.qq.com/s/fwMEhmx8vxVlvfnipx09Ag Jenkinsfile文件支持功能詳細介紹篇:https://mp.weixin.qq.com/s/5sXcdd4PU_81Ms64ZdlNAw 為什麼叫「熊貓編碼助手-PandaCoder」? 熊貓是中國的國寶,備受世界喜愛,代表着中國

shuyixiaobututou 頭像

@shuyixiaobututou

昵稱 舒一笑不禿頭

@codesheep_pro

JetBrains出手了,IDEA重大調整,來了!

昨晚我在家網上衝浪例行刷博客時又看到了一個事關 IntelliJ IDEA 變化的重磅消息,可能有些同學也看到了。 JetBrains 決定將 IntelliJ IDEA 全部遷移到統一發行版。 這是什麼意思呢? 大家都知道,在此之前,在 IntelliJ IDEA 官網其實一直是提供有兩套安裝包供用户去下載和安裝使用的。 分別為: IntelliJ IDEA Ultimate:專業旗艦版

codesheep_pro 頭像

@codesheep_pro

昵稱 CodeSheep

@shuyixiaobututou

我的開源項目-PandaCoder迎來史詩級大更新啦

📖 插件簡介 PandaCoder 是一款專為中文開發者設計的 IntelliJ IDEA 插件,集成了中文編程轉換、Jenkins Pipeline支持、SpringBoot配置文件圖標顯示等多項強大功能。通過智能翻譯引擎和專業的開發工具支持,大幅提升中文開發人員的編程效率和開發體驗。 項目地址 https://github.com/shuyixiao-better/PandaCoder 1

shuyixiaobututou 頭像

@shuyixiaobututou

昵稱 舒一笑不禿頭

@xinchengkuaikayuan

IDEA插件Gradle With Me蹬蹬蹬登場啦,Gradle開發版本管理小助手!!!

IDEA插件Gradle With Me蹬蹬蹬登場啦,Gradle開發版本管理小助手!!! ‌🏷️ 標籤‌:#gradle #idea插件 #java #nexus #gpvp #GradleWithMe 💡前言 工欲善其事必先利其器! 輕便快捷是初心,勢必為節省您的大量時間和心力而前行!讓更多的時間和價值留在更重要的地方!!! 希望它能成為一款真正有價值的插件,避免大家花費更多的精力和心力在

xinchengkuaikayuan 頭像

@xinchengkuaikayuan

昵稱 新程快咖員

@shuyixiaobututou

PandaCoder 1.1.8 發佈:中文開發者的智能編碼助手全面升級

🐼 PandaCoder 1.1.8 發佈:中文開發者的智能編碼助手全面升級 讓中文開發者告別命名困擾,擁抱高效編程新時代! 🎉 版本亮點 PandaCoder 1.1.8 作為內測版本,帶來了全新的Bug記錄功能本地文件啓用禁用功能,讓開發者可以更靈活地管理錯誤信息存儲方式。這個版本不僅延續了插件一貫的智能化特色,更在用户體驗上做出了重要改進。 🚀 核心功能一覽 1. 🐛 智能

shuyixiaobututou 頭像

@shuyixiaobututou

昵稱 舒一笑不禿頭

@shuyixiaobututou

🚀 PandaCoder 2.0.0 - ES DSL Monitor & SQL Monitor 震撼發佈!

🚀 PandaCoder 2.0.0 - ES DSL Monitor SQL Monitor 震撼發佈! 讓數據庫查詢和搜索引擎調用一目瞭然! 告別盲目調試,擁抱可視化監控時代! 📖 目錄 功能介紹 為什麼需要這兩個監控工具 快速開始 詳細配置指南 使用場景 常見問題 技術原理 🎯 功能介紹 ES DSL Monitor - Elasticsearch

shuyixiaobututou 頭像

@shuyixiaobututou

昵稱 舒一笑不禿頭

@johanazhu

前端學 Ruby:安裝Ruby、Rails

Ruby 是什麼 Ruby 是一個注重均衡的語言,它的發明者松本行弘,混合了他喜歡的多門語言(Perl、Smalltalk、Eiffel、Ada 和 Lisp),創造出了一種兼具函數式編程和命令式編程特色的新語言 他“試着讓 Ruby 更自然,而不是更簡單”,讓一切符合生活常規 除此之外,他還提到: Ruby 就像人的身體一樣,表面上看來簡單,但是內部卻相當複雜 如何安裝 ruby 筆者所用的電腦

johanazhu 頭像

@johanazhu

昵稱 山頭人漢波

@johanazhu

前端學Ruby:全棧論壇(地宮)項目一

本來想做 buddha(菩薩)論壇的,發現自己參考的項目太難實現,猝 筆者回爐重修了一番,正好發現了 realworld,遂決定將 realworld 項目代替原先的 buddha 項目,還是要量力而行,不要一意孤行(項目規劃太大,浪費太多時間學習) 先介紹一下 realworld 項目 源碼:https://github.com/gothinkster/realworld demo:https:

johanazhu 頭像

@johanazhu

昵稱 山頭人漢波

@johanazhu

前端學Ruby:全棧論壇(地宮)項目二

接上文前端學Ruby:全棧論壇(地宮)項目一,休息一晚後,我們繼續 各個模型建立了我們想要的 筆者是前端出身,對數據庫的理解僅限於用 node + mysql (mongodb)做過微型博客。除此之外,數據庫的知識點就無了,以下寫的不好的,多多擔待 文章模型與用户模型結合 文章模型與用户模型的結合,一個人必須要先登錄後才能寫文章,其次,一個人可以有很多文章,但當他註銷後,文章就沒了 先在 arti

johanazhu 頭像

@johanazhu

昵稱 山頭人漢波

@monkeynik

搶佔式調度協程API服務器

這篇文章的標題有些拗口,筆者簡單解釋一下。 本文是一款介紹開源API服務器Medge的文章。Medge是一個HTTP服務器,而其作者目前將其定位為API服務器方向。 在Medge中,我們可以通過腳本語言Melang來編寫和實現API邏輯。Melang是一種搶佔式調度的協程語言,其每一個腳本任務都被視為一個協程運行在同一個單一線程內部,依據執行步長輪詢調度。因此,在上層邏輯開發過程中,開發者無需考慮

monkeynik 頭像

@monkeynik

昵稱 用户bPbzEjV