内存空洞

计算机在加载和保存数据时,如果内存地址合理地对齐的将会更有效率。例如 2 字节大小的 int16 类型的变量地址应该是偶数,一个 4 字节大小的 rune 类型变量的地址应该是 4 的倍数,一个 8 字节大小的 float64、uint64 或 64-bit 指针类型变量的地址应该是 8 字节对齐的。但是对于再大的地址对齐倍数则是不需要的,即使是 complex128 等较大的数据类型最多也只是 8 字节对齐。

Goroutine 与 Go 语言并发模型 · Analyze

Go 语言最吸引人的地方是它内建的并发支持。Go 语言并发体系的理论是 C.A.R Hoare 在 1978 年提出的 CSP 模型。在并发编程中,目前的绝大多数语言,都是通过加锁等线程同步方案来解决数据共享问题,而 Go 语言另辟蹊径,它将共享的值通过 Channel 传递。在任意给定的时刻,最好只有一个Goroutine 能够拥有该资源。数据竞争从设计层面上就被杜绝了。

Go 语言 GC 机制 · Analyze

内存管理是开发应用中的一大难题。传统的系统级编程语言(主要指 C/C++)中,程序开发者必须对内存小心的进行管理操作,控制内存的申请及释放。因为稍有不慎,就可能产生内存泄露问题,这种问题不易发现并且难以定位,一直成为困扰程序开发者的噩梦。

Go mod 模块化管理

前言 在Go语言的发展史中,2018年注定是一个重要的时间点,因为在8月正式发布了Go1.11。Go1.11语言部分虽然没有变化,但是带来了3

Java Grpc 工程中使用

续上篇介绍 Java GRPC proto 编译 现在我们拿到了编译的 Java 文件,其中 User.java 为 rpc 通信,文件名同 .proto 文件名称;CreateAccountGrpc.java 为定义的服务