Golang面试题:是否是平衡的二叉树

问题:给定一个二叉树,判断其是否是高度平衡的二叉树。高度平衡的二叉树定义:一颗二叉树,每一个节点的左右子树的高度差的绝对值不超过1。return 1 + max。

Golang中到底能不能实现安全的双检锁?

不安全的双检锁从其他语言转入Go语言的同学经常会陷入一个思考:如何创建一个单例?有些同学可能会把其它语言中的双检锁模式移植过来,双检锁模式也称为懒汉模式,首次用到的时候才创建实例。

GraphQL:使用Golang构建一个博客引擎API

> 我们会比较简单的 GraphQL 实现和纯 REST 替代方案,在一种普通场景下对比它们的实现复

Golang面试必问——内存逃逸分析

这个题是小编面试遇到次数最多的题目之一了。在开始之前,我们先思考以下几个问题,当然,后面小编也会一一解答。

Golang 1.13发布,新功能尝鲜

简介最近Golang新版本1.13发布,距离上一个版本1.12,只有六个月。该版本主要带来了工具链,运行时和库的变化。根据承诺规则,该版本保持与现有1.x版本的兼容。从Golang 1.

Golang——变量的声明与定义

Golang当中不一样的地方主要有几点,第一点是严格区分了int,int16,int32和int64,同样区分了float,float32和float64。

Golang性能测试-通过wrk工具测试QTS,QPS,QOS

=nil{http.Error,http.StatusInternalServerError)return}listHtml:=””for_,fileInfo:=rangefileInfoArr{imgid:=fileInfo.Name}压测命令:./wr

Golang 并发数据冲突检测器与并发安全

检测到冲突时,会按照以下格式打印冲突报告,它包含堆栈跟踪信息,以及协程编号,如:➜ dataRace git: ✗ go run -race main.go==================WARNING: DATA RACE  //警告: 数据冲突Write at 0x00c000124180 by goroutine 7: //普通协程写操作 runtime.mapassign_faststr /usr/local/go/src/runtime/map_faststr.go:202 +0x0 main.main.func1 /Users/xb/gitlab/go/go_core_program/sync/dataRace/main.go:9 +0x5d。

Golang channel源码分析

go通道基于go的并发调度实现,本身并不复杂,go并发调度请看我的这篇文章:go并发调度原理学习1.

TODO:Golang语言TCP/UDP协议重用地址端口

TODO:Golang语言TCP/UDP协议重用地址端口这是一个简单的包来解决重用地址的问题。 go net包(据我所知)不允许设置套接字选项。 这在尝试进行TCP NAT时尤其成问题,其需要在同一TCP端口上进行侦听和拨号的过程。 这个包使我有可能实现这个功能。