Code

Golang并发调度GMP原理(转载)

  • Code, Golang
  • 16 clicked

Golang并发原理及GPM调度策略 1. Goroutine(Golang Coroutine) 使用多核CPU实现并行处理,使应用在多核cpu实现并行处理的方案主要是多进程与多线程两种方式,多进程模型相对简单,但是有着资源开销大及进程间通信成本高的问题。多线程模型相对复杂,会有死锁,线程安全,模型复杂等问题,但却因为资源开销… 阅读更多 »Golang并发调度GMP原理(转载)

Golang类型转换小结

1. 类型转换方式 1.1. 强制类型转换 语法:<结果类型> := <目标类型> ( <表达式> ) 类型转换是用来在不同但相互兼容的类型之间的相互转换的方式,所以,当类型不兼容的时候,是无法转换的。

1.2. 类型断言 类型… 阅读更多 »Golang类型转换小结

golang中bytes包(转载)

  • Code, Golang
  • 25 clicked

golang标准库中提供了bytes包,该包几乎和strings包给string提供的功能一样,只不过bytes包对应的是[]byte。和strings一样,并不修改传入变量,而是返回其副本修改之后的内容。 整个包分为以下几种操作:转换、比较、去除、分割、查找、替换 1. 转换 将s的副本中所有字符修改成大写(小写),然后返回 … 阅读更多 »golang中bytes包(转载)

解决Go Modules模式下更新私有库问题(转载)

  在Go 1.11之后推出了依赖包管理工具Go Modules之后,Go项目可以在 GOPATH 之外的位置创建,当项目中仅使用了公有库作为依赖时,使用 go get 或 go mod 更新依赖一切如初,没有任何问题。   由于Go Modules默认使用代理去更新依赖,所以当使用了私有仓库作为依赖时,Go更新依赖的相关命令将… 阅读更多 »解决Go Modules模式下更新私有库问题(转载)

Golang单元测试gomock

1. go mock单元测试 搞单元测试,如果碰到这些情况: 一个函数,内部包含了很多并且很深的调用,但是如果单单测这个函数,其实实现的功能很简单。 一个函数,包含了其他还未实现的调用。 函数内部对数据的要求极为苛刻。 那么这时候就可以考虑使用mock来处理。 mock,简而言之就是可以通过注入我们所期望返回的数据,或者我们所期… 阅读更多 »Golang单元测试gomock

深入理解Golang之context(转载)

  • Code, Golang
  • 65 clicked

context是Go并发编程中常用到一种编程模式。本文将从为什么需要context,深入了解context的实现原理,以了解如何使用context。 1. 前言 这篇文章将介绍Golang并发编程中常用到一种编程模式:context。本文将从为什么需要context出发,深入了解context的实现原理,以及了解如何使用cont… 阅读更多 »深入理解Golang之context(转载)