版权郑重声明 :文章内容均摘自书籍<<Go 语言设计与实现>> 作者:Draven; 作者github地址:Draven的github
目录
第一部分 预备知识
第一章 准备工作
1.1 调试 Go 语言
第二章 编译原理
2.1 概述
2.2 词法和语法分析
2.3 类型检查
2.4 中间代码生成
2.5 机器码生成
第二部分 基础知识
第三章 数据结构
3.1 数组
3.2 切片
3.3 哈希表
3.4 字符串
第四章 语言基础
4.1 函数调用
4.2 接口
4.3 反射
第五章 常用关键字
5.1 for 和 range
5.2 select
5.3 defer
5.4 panic 和 recover
5.5 make 和 new
第三部分 运行时
第六章 并发编程
6.1 上下文 Context
6.2 同步原语与锁
6.3 计时器
6.4 Channel
6.5 调度器
6.6 网络轮询器
6.7 系统监控
第七章 内存管理
7.1 内存分配器
7.2 垃圾收集器
7.3 栈空间管理
第四部分 进阶内容
第八章 元编程
8.1 插件系统
8.2 代码生成
第九章 标准库
9.1 JSON
9.2 HTTP
9.3 数据库
主要内容:为什么需要锁,互斥锁 Mutex,读写锁Go语言中 sync 包里提供了互斥锁 Mutex 和读写锁 RWMutex 用于处理并发过程中可能出现同时两个或多个协程(或线程)读或写同一个变量的情况。 为什么需要锁 锁是 sync 包中的核心,它主要有两个方法,分别是加锁(Lock)和解锁(Unlock)。 在并发的情况下,多个线程或协程同时其修改一个变量,使用锁能保证在某一时间内,只有一个协程或线程修改这一变量。 不使用锁时,在并发的情况
本文向大家介绍Go语言中io.Reader和io.Writer的详解与实现,包括了Go语言中io.Reader和io.Writer的详解与实现的使用技巧和注意事项,需要的朋友参考一下 一、前言 也许对这两个接口和相关的一些接口很熟悉了,但是你脑海里确很难形成一个对io接口的继承关系整天的概貌,原因在于godoc缺省并没有像javadoc一样显示官方库继承关系,这导致了我们对io接口的继承关系记忆不
Go Blog In Action 中文名 Go语言博客实践,是对 TypePress 开发过程中的想法、方法、探讨等任何方面同步整理成的电子书。
Go Blog In Action 中文名 Go 语言博客实践,是对 TypePress 开发过程中的想法,方法,探讨等任何方面同步整理成的电子书。
本文向大家介绍Go语言排序与接口实例分析,包括了Go语言排序与接口实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Go语言排序与接口用法。分享给大家供大家参考。具体如下: 希望本文所述对大家的Go语言程序设计有所帮助。
这本书将教会你使用Rust 编程语言。Rust 是一个系统编程语言,它注重于三个方面:安全,速度和并发性。为了实现这些目标,它没有采用垃圾回收机制(GC)。这让它在其它语言并不擅长的场景中大展身手:嵌入到其它语言中、在特定的时间和空间要求下编程、编写例如设备驱动和操作系统这样的底层代码。
对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现。 对于一个架构师而言,掌握各种语言的优势并可以运用到系统中,由此简化系统的开发,是其架构生涯的第一步。 对于一个开发团队而言,能在短期内开发出用户满意的软件系统是起核心竞争力的体现。 每一个程序员都不能固步自封,要多接触新的行业,新的技术领域,突破自我。
语言处理程序 汇编程序 地址寄存器AR、数据寄存器DR、指令寄存器IR对汇编语言透明的不可见,程序计数器PC可见 算术指令 带符号数左移*2或右移/2 SAL算数左移:把目的操作数的低位向高位移,空出低位补0 SAR算术右移:把目的操作数的高位向低位移,空出高位用最高位(符号位)填补 逻辑指令 用于无符号数*2或/2 SHL逻辑左移:移位后空出位补0 SHR逻辑右移:移位后空出位补0 循环移位指令