51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

经验分享

AQS 源码详解

AQS 源码详解

厉飞雨 阅读(107) 评论(0) 赞(6)

一、前言 {#一、前言} ------------ **AQS** 是抽象的队列同步器,是用来构建锁或其他同步组件的重量级基础框架及整个 **JUC** 体系的基石。 二、相关组件 {#二、相关组件} ---------------- 下边的组件都是基于 **AQS** 框架扩展实现的: * **ReentrantLock**:可重入锁,避免多线程竞争资源的安全问题 *...

LockSupport 工具介绍

LockSupport 工具介绍

厉飞雨 阅读(73) 评论(0) 赞(5)

简单介绍 {#简单介绍} ------------ **LockSupport** 是用来创建锁和其他同步类的基本线程阻塞原语,是线程等待唤醒机制的一种实现工具类。 等待唤醒机制 {#等待唤醒机制} ---------------- **等待唤醒机制** 是线程中的一种协作机制。多线程之间不单有竞争锁的情况,还有相互协作的场景。比如线程A执行完某一操作需要挂起一段时间,将...

Thread 状态速查手册

Thread 状态速查手册

厉飞雨 阅读(79) 评论(0) 赞(6)

前言 {#前言} -------- 梳理早期与 **Thread** 状态相关的笔记。 状态分类 {#状态分类} ------------ 通过查看 **Thread** 源码,我们可以看到在其类内部定义了线程的状态枚举: |------------------------------------------------------|------------------...

CAS 原理新讲

CAS 原理新讲

厉飞雨 阅读(79) 评论(0) 赞(6)

一、什么是 CAS {#一、什么是-CAS} ---------------------- **CAS** 全程 Compare-And-Swap,它的功能是判断内存中某个位置的值是否为预期值,如果是则更改为新值,这个过程是原子性的。 二、CAS 作用 {#二、CAS-作用} -------------------- **CAS** 是另一个无锁解决方案,更准确的是采用乐...

源码解读 Golang 中 sync.Map 的实现原理

源码解读 Golang 中 sync.Map 的实现原理

厉飞雨 阅读(118) 评论(0) 赞(6)

简介 {#简介} -------- Go 的内建 `map` 是不支持并发写操作的,原因是 `map` 写操作不是并发安全的,当你尝试多个 Goroutine 操作同一个 `map`,会产生报错:`fatal error: concurrent map writes`。 因此官方另外引入了 `sync.Map` 来满足并发编程中的应用。 `sync.Map` 的实现原理可...

【小白课程】openKylin系统安装配置Golang环境~

【小白课程】openKylin系统安装配置Golang环境~

厉飞雨 阅读(122) 评论(0) 赞(8)

Golang语言在近年来因为其高性能、编译速度快、开发成本低等特点逐渐得到大家的青睐,它是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。本文主要给大家介绍如何在openKylin上安装部署Golang。 **01** **Golang 特点** 在开始讲解如何配置前,我们先来了解下Go语言的特点。 * Go语言**语法简洁**,语言风格...

使用 Golang 的交叉编译

使用 Golang 的交叉编译

厉飞雨 阅读(144) 评论(0) 赞(8)

> 走出舒适区,我了解了 Go 的交叉编译功能。 在 Linux 上测试软件时,我使用各种架构的服务器,例如 Intel、AMD、Arm 等。当我 [分配了一台满足我的测试需求的 Linux 机器](https://opensource.com/article/20/12/linux-server),我仍然需要执行许多步骤: 1. 下载并安装必备软件 2. 验证构建服...

如何使用 Golang 日志监控你的应用程序?

如何使用 Golang 日志监控你的应用程序?

厉飞雨 阅读(129) 评论(0) 赞(8)

|----|----------------------------------------------------------------------------------------| | 导读 | **你是否厌烦了那些使用复杂语言编写的、难以部署的、总是在不停构建的解决方案?Golang 是解决这些问题的好方法,它和 C 语言一样快,又和 Python 一样简单。** ...

Golang 修饰器编程

Golang 修饰器编程

厉飞雨 阅读(113) 评论(0) 赞(5)

|----|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------...