golang

Go

手撸golang 基本数据结构与算法 链表

45 0

手撸golang 基本数据结构与算法 链表缘起最近阅读<<我的第一本算法书>>(【日】石田保辉;宫崎修一)本系列笔记拟采用golang练习之链表链表是数据结构之一,其中的数据呈线性排列。 每个数据节点都有1个“指针”,它指向下一个数据的内存地址。访问数据时,我们需要从链表头部开始查找(线性查找), 如果目标数据在链表最后的话,需要的时间就是O(n)。另外,添加数据只需要更改两个指针的

Go

Rust 内存管理

74 0

主要的内存管理方法 主要针对堆内存的管理。手动管理(c/c++),容易触发内存安全问题,以及内存泄露。 自动管理(GC,java/golang),运行时对性能有影响,并不能完全避免内存泄露。 运行时使用 Drop trait 来回收资源,利用所有权规则在编译期间避免内存安全问题。内存安全:悬垂指针,指向内存已经被释放。 空指针。Option<T> 避免了空指针。 未定义内存。编译器确保所有分

Go

tidb-lite: 用于 Golang 数据库相关代码的单元测试

55 0

使用 tidb-lite 可以在 Golang 代码中运行 mocktikv 模式的 TiDB。 tidb-lite 可以用于数据库相关代码的单元测试,如果你的应用使用到了 MySQL/TiDB,就会有大量的数据库相关的代码要进行单元测试。 另外,有的应用希望在本地持久化一些数据,并且以数据库的方式存储,方便对数据进行管理。这种场景下也可以使用 tidb-lite,开发者使用兼容 MySQL 协议的 SQL 对数据进行本地处理。 本文主要介绍如何使用 tidb-lite 进行数据库相关代码的单元测试。那么

Go

聊聊dubbo-go-proxy的ConsulRegistryLoad

35 0

序本文主要研究一下dubbo-go-proxy的ConsulRegistryLoadLoaderdubbo-go-proxy/pkg/registry/load.go// Loader this interface defined for load services from different kinds registry, such as nacos,consul,zookeeper. type Loader interface {// LoadAllServices load all service

Go

Go 语言 协程和管道讲解

284 0

参考链接: 角度6-管道Go 语言 协程和管道讲解 一、进程和线程基本说明: 进程是程序在操作系统中一次执行过程,是系统进行资源分配和调度的基本单位;线程是进程的一个执行实例,是程序最小单元,它是比进程更小的能独立运行的基本单位;一个进程可创建和销毁多个线程,同一个进程的多个线程可以并发执行;一个程序至少有一个进程,一个进程至少有一个线程; 举个栗子: 使用的迅雷客户端,打开迅雷就是开启了一个进程,而下载多个视频,就是多个线程在工作; 二、并发、并行简单说明: 1.并发: 多线程程序在单核上运行,

Go

聊聊dubbo-go-proxy的Route

26 0

序本文主要研究一下dubbo-go-proxy的RouteRoutedubbo-go-proxy/pkg/router/route.go// Route defines the tree of router APIs type Route struct {lock sync.RWMutextree *avltree.TreewildcardTree *avltree.Tree }// NewRoute returns an empty router tree func Ne

Go

Golang 获取当前外网IP/地址/运营商

486 0

通过 Golang 获取当前外网IP、地址、运营商代码 package mainimport ("fmt""io/ioutil""net/http" )func main() {responseClient, errClient := http.Get("http://ip.dhcp.cn/?ip") // 获取外网 IPif errClient != nil {fmt.Printf("获取外网 IP 失败,请检查网络\n")panic(errClient)}// 程序在使用完 response 后必须关

Go

手撸golang 基本数据结构与算法 数组

39 0

手撸golang 基本数据结构与算法 数组 缘起 最近阅读<<我的第一本算法书>>(【日】石田保辉;宫崎修一) 本系列笔记拟采用golang练习之 数组 数组是一种线性数据结构, 数据按顺序存储在内存的连续空间内。 每个数据的内存地址(在内存上的位置)都可以通过数组下标算出, 我们也就可以借此直接访问目标数据(这叫作“随机访问”)。访问数据时使用的是随机访问(通过下标可计算出内存地址)