Golang_多线程

channel 创建 channel 1 msg := make(chan int, 10) 基于 channel的通信是同步的 当缓冲区满时,数据发送是阻塞的 通过 make 关键字创建通道时候可以定义缓冲区容量,默认缓冲区容量

Golang_进阶语法

锁 sync.Mutex 互斥锁 lock 加锁,unlock解锁 sync.RWMutex 读写锁 不限制并发读,但是会阻塞 读 和写的同时发生 sync.WaitGroup 【读写分离,为了优化性能】 等待 一组 goroutine 返回 sync.Once 保证某段代码只

Golang_如何解决 异常

golang 异常处理总结 参考博客 参考 知乎的博客 1. switch case 处理 return的 问题 2. goto 处理golang return 太多 如何解决 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

Golang_项目分层

golang 项目分层 一个基本的go项目一般会有cmd, internal, pkg三个基础目录来分层,当然这不是官方go核心开发团队定义的标准。但这个确实是目前go生态系

Golang_语言的基础语法

if 条件语句 1 2 3 4 5 6 7 8 9 10 11 12 13 if condition1 { } else if condition2 { }else { } // if 的简短语句 // 同 for 一样, if 语句可以在白条鸡表达式前面执行一个简单的语句 if v:= x-100; v<0 {

Golang_语言的特性

为什么需要 go语言 其他语言的弊端 硬件发展速度远远超过软件 c语言等原生语言 缺乏好的依赖管理【依赖于头文件】 java 和 c++ 等语言过于笨重 系统语言对垃圾回

golang操作redis

golang操作redis 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

golang的 GMP模型

golang GMP模型 学习教程, 看11分钟 一个进程 可以有多个线程 ,每个线程 有多个协程 协程和线程的关系 N:M原理 一个协程可以挂到不同的线程上面去,所以是

Golang动态执行脚本

golang 动态执行脚本 golang 需要编译,但是 有时候我需要动态语言的特性,就需要动态执行脚本 更多 gopher-luar 和 starlark-go-lib 已经把在 gopher-lua 和 starlark-go 中使用 go 语言的第三方包变得极其容易。当然

golang基础语法

golang基础语法 golang 自带的标识符 golang 除了保留关键字,还提供 36个预定义标识符,包括基础数据类型, 系统内嵌函数等。 golang 编程基本规则 变量名首字母大
T