Hollis

<span style="font-weight: bold;">Hollis写字的地方...</span>

Leng-xuan-2's Leetcode chart

内存对齐

内存对齐

2023.10.01

介绍

参考:【Golang】这个内存对齐呀!?

Go语言中的内存对齐是一种用于优化内存访问和提高性能的技术。内存对齐是计算机体系结构中的一个重要概念,它确保数据结构中的字段在内存中按照一定的规则排列,以便CPU能够更有效地访问这些数据。在Go中,内存对齐通常是由编译器和运行时系统来处理的,而不需要手动控制。以下是关于Go语言中内存对齐的一些详细信息:

Go 语言的 string 类型

string的基本概念

Go 语言中的字符串类型 string 是一个非常常用的数据类型,它用于表示文本信息。以下是关于 Go 语言中字符串的详细介绍:

  1. 基本类型:字符串是 Go 语言中的基本类型之一,属于预定义类型,无需额外导入包即可使用。

Go原子操作和锁的区别

原子操作由底层硬件支持,而锁是基于原子操作+信号量完成的。

若实现相同的功能,前者通常会更有效率原子操作是单个指令的互斥操作;互斥锁/读写锁是一种数据结构,可以完成临界区(多个指令)的互斥操作,扩大原子操作的范围。

Go 语言标准库中 atomic.Value 的前世今生

本文转载自:Go 语言标准库中 atomic.Value 的前世今生

在 Go 语言标准库中,sync/atomic包将底层硬件提供的原子操作封装成了 Go 的函数。但这些操作只支持几种基本数据类型,因此为了扩大原子操作的适用范围,Go 语言在 1.4 版本的时候向sync/atomic包中添加了一个新的类型Value。此类型的值相当于一个容器,可以被用来“原子地"存储(Store)和加载(Load)任意类型的值。

Golang 源码分析系列之 atomic 底层实现

本文转载自:Golang 源码分析系列之 atomic 底层实现

atomic 概述

Package atomic provides low-level atomic memory primitives useful for implementing synchronization algorithms.

atomic 包提供了用于实现同步机制的底层原子内存原语。

These functions require great care to be used correctly. Except for special, low-level applications, synchronization is better done with channels or the facilities of the sync package. Share memory by communicating; don’t communicate by sharing memory.

0%