内存空洞

计算机在加载和保存数据时,如果内存地址合理地对齐的将会更有效率。例如 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 为定义的服务

Java GRPC proto 编译

相较于Go,Java 中的使用步骤就繁琐了很多,我也是折腾了很久才搞清楚。、 环境 ubuntu 16.04 IDE:Intellig IDEA Java 编译:Gradle proto 编译 使用 Gradle

Go GRPC使用

1.1RPC简介 RPC,全称 Remote Procedure Call——远程过程调用,主要用于分布式系统中程序间的通信,基于 TCP 或 UDP 传输协议实现。RPC 属于 IPC(进程间