技术总舵
如果我没有在装逼,那么就是在去装逼的路上!

Tagged: Atomic

11个知识点轻松掌握Java线程同步与实现

前言 为何要使用Java线程同步? Java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时,将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用,…

springboot + aop + Lua分布式限流的最佳实践

本文收录在 GitHub 地址 https://github.com/chengxy-nds/Springboot-Notebook 一、什么是限流?为什么要限流? 不知道大家有没有做过帝都的地铁,就是进地铁站都要排队的那种,为什么要这样摆长龙转圈圈?答案就…

还在用Synchronized?Atomic你了解不?

前言 只有光头才能变强 之前已经写过多线程相关的文章了,有兴趣的同学可以去了解一下: https://github.com/ZhongFuCheng3y/3y/blob/master/src/thread.md 在阅读《阿里巴巴 Java开发手册》读后感时,还有未解决…

《Go专家编程》Go WaitGroup实现原理

1 前言 WaitGroup是Golang应用开发过程中经常使用的并发控制技术。 WaitGroup,可理解为Wait-Goroutine-Group,即等待一组goroutine结束。比如某个goroutine需要等待其他几个goroutine全部完成,那么使用WaitGro…

不得不知道的golang之sync.Mutex互斥锁源码分析

针对Golang 1.9的sync.Mutex进行分析,与Golang 1.10基本一样除了将`panic`改为了`throw`之外其他的都一样。 源代码位置:`sync\mutex.go`。 可以看到注释如下: “` Mutex can be in 2 modes of operations: normal and starvation. In normal mode waiters are queued in FIFO order, but a woken up waiter does not o…

golang value并发安全的另一种玩法

golang value并发安全的另一种玩法,就是使用atomic.Value,看一段代码。 package main import ( “sync” “sync/atomic” “time” ) func main() { var m atomic.Value type Map map[string]string m.Store(……

内存Page与磁盘Block

在计算机虚拟内存的概念中,页、内存页或者虚拟页是指内存中的一段固定长度的块,这个内存块在物理地址和虚拟内存地址上都是连续的。一个页通常是以下操作的最小单元: 操作系统为程序分配空间; 内存和外存传输,…