Golang入门指南


  • 首页

  • todo

  • 思考

  • life

  • food

  • OS

  • lua

  • redis

  • Golang

  • C

  • TCP/IP

  • ebpf

  • p4

  • OpenVPN

  • IPSec

  • L2TP

  • DNS

  • distributed

  • web

  • OpenWRT

  • 运维

  • Git

  • 鸟哥的私房菜

  • IT杂谈

  • 投资

  • About Me

  • 友情链接

  • FTP

  • 搜索
close

同步原理的基石

时间: 2021-04-30   |   分类: go     |   阅读: 3066 字 ~7分钟

同步原语的基石

Go是一门以并发编程见长的语言,它提供了一系列的同步原语方便开发者使用,例如sync包下的Mutex、RWMutex、WaitGroup、Once、Cond,以及抽象层级更高的Channel。但是,它们的实现基石是原子操作。需要记住的是:软件原子操作离不开硬件指令的支持。本文拟通过探讨原子操作——**比较并交换(compare and swap, CAS)**的实现,来理解Go是如何借助硬件指令来实现这一过程的。

阅读全文 »

Golang append扩容机制

时间: 2021-04-30   |   分类: go     |   阅读: 3662 字 ~8分钟

append扩容机制

在《切片传递的隐藏危机》一文,小菜刀有简单地提及到切片扩容的问题。在读者讨论群,有人举了以下例子,并想得到一个合理的回答。

1package main
2
3func main() {
4    s := []int{1,2}
5    s = append(s, 3,4,5)
6    println(cap(s))
7}
8
9// output: 6

为什么结果不是5,不是8,而是6呢?由于小菜刀在该文中关于扩容的描述不够准确,让读者产生了疑惑。因此本文想借此机会细致分析一下append函数及其背后的扩容机制。

阅读全文 »

浅谈逃逸分析

时间: 2021-04-30   |   分类: go     |   阅读: 3371 字 ~7分钟

详解逃逸分析

Go是一门带有垃圾回收的现代语言,它抛弃了传统C/C++的开发者需要手动管理内存的方式,实现了内存的主动申请和释放的管理。Go的垃圾回收,让堆和栈的概念对程序员保持透明,它增加的逃逸分析与GC,使得程序员的双手真正地得到了解放,给了开发者更多的精力去关注软件设计本身。

阅读全文 »

Once函数单次调用

时间: 2021-04-29   |   分类: go     |   阅读: 1766 字 ~4分钟

认识单例

超超:您好,面试官~

面试官:你好,你平时开发是用 windows 还是 linux 居多?

超超: ̄□ ̄||我平时都是用windows开发的。

面试官:那你知道 windows 的资源管理器只能单开,但是cmd命令行可以开很多个,有想过这是为什么吗?

阅读全文 »

面试题型系列:滑动窗口技巧

时间: 2021-04-29   |   分类: algorithm     |   阅读: 1891 字 ~4分钟

面试题型系列:滑动窗口技巧

本文是公众号读者上山打老虎的第二篇原创投稿,主要内容是讲解算法技巧之滑动窗口。上山兄一直保持着刷题的习惯,并形成了自己的一套做题心得,当然他也是无情的offer收割机。同时上山兄会持续给本号投稿算法类文章,代码示例均采用Go语言,希望该算法系列文章有助读者更好地备战面试。

阅读全文 »

切片传递的隐藏危机

时间: 2021-04-29   |   分类: go     |   阅读: 1651 字 ~4分钟

切片传递的隐藏危机

在Go的源码库或者其他开源项目中,会发现有些函数在需要用到切片入参时,它采用是指向切片类型的指针,而非切片类型。这里未免会产生疑问:切片底层不就是指针指向底层数组数据吗,为何不直接传递切片,两者有什么区别?

阅读全文 »

一文读懂channel设计

时间: 2021-04-29   |   分类: go   面试     |   阅读: 7231 字 ~15分钟

在Go中,要理解channel,首先需要认识goroutine。

img

为什么会有goroutine

现代操作系统中为我们提供了三种基本的构造并发程序的方法:多进程、I/O多路复用和多线程。其中最简单的构造方式当属多进程,但是多进程的并发程序,由于对进程控制和进程间通信开销巨大,这样的并发方式往往会很慢。

阅读全文 »

Go函数调用惯例

时间: 2021-04-28   |   分类: go     |   阅读: 2971 字 ~6分钟

Go函数调用惯例

本文旨在探讨Go函数中的一个问题:**为什么Go函数能支持多参数返回,而C/C++、java不行?**这其实牵涉到了一个叫做函数调用惯例的问题。

阅读全文 »
64 65 66 67 68 69 70 71 72

日志
分类
标签
RSS 订阅
GitHub
© 2009 - 2025
粤ICP备2021068940号-1 粤公网安备44011302003059
0%