一只摸鱼人
在Go语言中, `sync.WaitGroup` 是一种用于等待一组goroutine完成执行的同步原语。它允许您协调和同步多个goroutine的执行。
要对一个 int32 类型的变量执行原子递增操作,可以使用 sync/atomic 包中的 AddInt32 函数
最基础的实现逻辑。
常见的几种占位符。
责任链模式是一种行为型设计模式,允许一个对象将请求沿着一个处理器链传递,直到请求被处理或者到达链的末尾。链中的每个处理器都有能力处理请求或将其传递给链中的下一个处理器。
全文搜索树设计思路
索引建立原则。
MySQL的binlog(二进制日志)是MySQL服务器的一种日志文件,用于记录数据库的变更操作
InnoDB是MySQL数据库的存储引擎之一
MyISAM是一种MySQL数据库的存储引擎
SQL优化是一个综合性的工作,需要根据具体情况进行优化。
MySQL中的临时表是一种特殊类型的表,它仅在当前数据库会话中存在,并在会话结束时自动被删除。临时表的作用是存储临时数据,通常用于复杂的查询、数据处理或临时存储计算结果。
使用Redis可以很方便地实现异步队列。
RDB和AOF
redis是一个高性能的key-value数据库。
go的调度器默认为抢占式调度。
在Go中,sync包提供了一种称为Mutex(互斥锁)的机制来实现对共享资源的并发访问控制。Mutex有两种模式:正常模式和饥饿模式。
在Go中,map是一种无序的键值对集合,类似于其他语言中的字典或哈希表。可以使用map来存储和查找数据。
在Go语言中,slice是一种可变长度的序列,它可以动态地增长或缩小其容量。
在Go语言中,同步锁(sync.Mutex)是一种用于保护共享资源的机制。它通过提供两个方法Lock()和Unlock()来实现对共享资源的互斥访问。
7种基本类型
指针使用规范很重要。
变量的使用是一件非常重要的事,希望下文的使用规范能帮到你。
为什么要在Go语言中使用汇编?
原型模式(Prototype Pattern)是一种创建型设计模式,它允许我们通过复制现有对象来创建新对象,而无需依赖于显式的构造函数
面试题:go的interface怎么实现的?
在Go语言中,空的 `struct{}` 类型通常被用作占位符或者信号。它不占用任何内存空间,也不包含任何字段,因此它被用来表示一个没有任何数据的结构体。
数据竞争(Data Race)
在Go语言中,defer是一个关键字,用于延迟执行函数或方法的调用。当使用defer关键字时,被延迟执行的函数或方法会在包含它的函数返回之前被调用。
go中的强制垃圾回收
Go提供了许多系统监控函数。
全局缓存池--用于重用对象的机制。
go的调度器是完成协程的组件。
Go中的内存分配,碰撞与分代。
go的垃圾回收器是怎么回收内存的?
MMSpan是Go语言垃圾回收器中的一个重要概念,它用于管理和跟踪堆内存的分配和释放。
go的垃圾回收机制(Garbage Collection)。
Go的内存分配器(Memory Allocator)
工厂模式简单介绍与实现。
如果没有避免管道堵塞,我们应该怎么办?
简单实现一个管道堵塞的案例。
用结构体实现Go的智能指针。
除了基本操作和稍微高级一些的操作外,Go的管道操作还能更复杂。
除了基本的管道操作,还有一些稍微高级点的操作。
Go中Channel的基本操作
在Go语言中,数组(Array)和切片(Slice)是两种不同的数据类型,它们在使用和特性上有一些区别。
在Go语言中,管道(Channel)是一种用于在不同的goroutine之间进行通信和同步的机制。
Go语言提供了多种进程间通信(Inter-Process Communication,IPC)的方式,以下是其中一些常用的方式:
Go的内存模型定义了在并发编程中如何访问共享变量的规则
策略模式是一种行为设计模式,它允许在运行时选择算法的行为。它将算法封装成独立的类,并使它们之间可以互相替换,从而使得算法可以独立于客户端而变化。