邓承超的个人日志
  • 随笔
  • 读过的书
  • 设计模式
  • 关于我

月份:2022年11月

sync.Mutex 源码分析(三)

在前面的文章中,我们分析到Mutex在休眠g和唤醒g分别用到了runtime_SemacquireMutex和runtime_Semrelease,接下来简单分析这两个函数的源码。 SemacquireMutex其源码对应runtime#s … 继续阅读 sync.Mutex 源码分析(三)

作者 dengchengchao@outlook.com发表于 2022年11月5日2022年11月5日

sync.Mutex 源码分析(二)

接下来我们分析Mutex的源码: Mutex采用了一个int32类型的字段:state来描述当前锁的状态,包括: 当前mutex是否被持有 是否当前已经唤醒了一个goroutine 是否处于饥饿状态 当前等待唤醒的goroutine数量 其 … 继续阅读 sync.Mutex 源码分析(二)

作者 dengchengchao@outlook.com发表于 2022年11月5日2022年11月5日

sync.Mutex 源码分析(一)

今天我们看下mutex。 在golang中,互斥锁由sync.Mutex实现,其仅包含两个方法,使用如下: mutext.Lock() //临界区 mutext.UnLock() 虽然仅仅两个方法,但是如果不了解Mutex的特性,则很容易在 … 继续阅读 sync.Mutex 源码分析(一)

作者 dengchengchao@outlook.com发表于 2022年11月5日2022年11月5日

golang netpoll 源码分析

在之前讲解goroutine的时候,我们说过,想要实现goroutine,必须解决的一个问题便是系统IO,系统调用不能长时间阻塞M,否则随着M的阻塞与新的M创建,协程会退化为线程导致系统负载过高。 golang选择的解决方案是重构网络库代码 … 继续阅读 golang netpoll 源码分析

作者 dengchengchao@outlook.com发表于 2022年11月5日2022年11月5日

发布者

头像

dengchengchao

不积跬步 无以至千里

欢迎关注公众号:StackTrace

分类目录

  • Docker
  • Go
  • JVM
  • Kafka
  • MongoDB
  • MyBatis
  • MySQL
  • Redis
  • Tomcat
  • 技术日志
  • 日记
  • 杂记
  • 算法
  • 设计模式
  • 随便写写
  • 首页

标签

ClassLoader Digester Docker Dockerfile File Files GMP Go HashMap IDEA Java Java8 JavaAgent Java 基础 Java工具 Java 干货 Java 语法 JMH JVM kafka log MongoDB MyBatis Path redis Spring String switch Tomcat UTF8 编码 创建型模式 双亲委派机制 工厂方法 建造者模式 技术干货 技术日志 抽象工厂 源代码 简单工厂 类加载 结构型模式 行为型模式 设计模式 责任链模式 面向对象设计原则

文章归档

  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年7月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年1月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年6月
  • 2020年2月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
           
© 2017 - 2023 邓承超的个人日志 版权所有 京ICP备18030052号-1