×

golang

Golang的锁机制(golang锁原理)

無言以對 無言以對 发表于2024-05-12 浏览4870 评论0
Golang 中的锁 Golang 中的有两种锁,为 sync.Mutex 和 sync.RWMutex。 sync.Mutex 互斥锁,只有一种锁:Lock(),它是绝对锁,同一时间只能有一个锁。 sync.RWMutex 读写锁,它有两种锁: RLock() 和 Lock(): RLock() 叫读锁。它不是绝对锁,比起互斥锁有着更高的并行性,它允许多个读者同时读取。 Lock() 叫写锁,它是个绝对锁,就是说,如果一旦某人拿到了这个锁,别人就不能再获取此锁了。 另外,有一种特

架构

Java Semaphore实现高并发场景下的流量控制(附源码) | 实用代码架构(java semaphore使用场景)

LINII LINII 发表于2024-05-12 浏览7058 评论0
目录 前言 Semaphore介绍 代码演示 总结 前言 在java开发的工作中是否会出现这样的场景,你需要实现一些异步运行的任务,该任务可能存在消耗大量内存的情况,所以需要对任务进行并发控制。如何优雅的实现并发控制呢?下面我会给大家介绍一个类——Semaphore,能很优雅的实现并发控制,继续往下看吧。 Semaphore介绍 首先我们看一下Semaphore类的构造函数是如何实现的。 public Semaphore(int permits, bool