书栈网 · BookStack 本次搜索耗时 0.030 秒,为您找到 10458 个相关结果.
  • 7.1 Zinx-V0.7代码实现

    7.1 Zinx-V0.7代码实现 A) 添加读写模块交互数据的管道 B) 创建Writer Goroutine C) Reader讲发送客户端的数据改为发送至Channel 7.1 Zinx-V0.7代码实现 我们的代码改动并不是很大。 A) 添加读写模块交互数据的管道 zinx/znet/connection.go type ...
  • 附录A: Go语言常见坑

    1996 2019-02-27 《Go语言高级编程》
    附录A:Go语言常见坑 可变参数是空接口类型 数组是值传递 map遍历是顺序不固定 返回值被屏蔽 recover必须在defer函数中运行 main函数提前退出 通过Sleep来回避并发中的问题 独占CPU导致其它Goroutine饿死 不同Goroutine之间不满足顺序一致性内存模型 闭包错误引用同一个变量 在循环内部执行defer语...
  • 日志组件-异步输出

    SetAsync Async 链式操作 对于日志输出即时性要求不高的内容,可以通过异步的方式输出日志,异步输出使得日志打印调用可立即返回,因此效率较高。glog 当然支持异步输出特性,并且内部使用了goroutine 池来管理异步日志打印任务,可以充分的降低对资源的占用率。 异步输出可以通过日志对象的SetAsync /SetFlags 方法,或者...
  • 日志组件-异步输出

    SetAsync Async 链式操作 对于日志输出即时性要求不高的内容,可以通过异步的方式输出日志,异步输出使得日志打印调用可立即返回,因此效率较高。glog 当然支持异步输出特性,并且内部使用了goroutine 池来管理异步日志打印任务,可以充分的降低对资源的占用率。 异步输出可以通过日志对象的SetAsync /SetFlags 方法,或者...
  • 并行化

    多核并行化与同步锁 1. 多核并行化 2. 同步锁 多核并行化与同步锁 1. 多核并行化 //多核并行化 runtime . GOMAXPROCS ( 16 ) //设置环境变量GOMAXPROCS的值来控制使用多少个CPU核心 runtime . NumCPU () //来获取核心数 //出让时间片 runtime ...
  • 内存锁-gmlock

    示例1,基本使用 示例2,TryLock非阻塞锁 内存锁模块,也称之为动态互斥锁 模块,支持按照给定键名动态生成互斥锁 ,并发安全并支持Try*Lock 特性。 当维护大量动态互斥锁的场景时,如果不再使用的互斥锁对象,请手动调用Remove 方法删除掉。 使用方式 : import "github.com/gogf/gf/v2/os/g...
  • 内存锁-gmlock

    示例1,基本使用 示例2,TryLock非阻塞锁 内存锁模块,也称之为动态互斥锁 模块,支持按照给定键名动态生成互斥锁 ,并发安全并支持Try*Lock 特性。 当维护大量动态互斥锁的场景时,如果不再使用的互斥锁对象,请手动调用Remove 方法删除掉。 使用方式 : import "github.com/gogf/gf/v2/os/g...
  • 内存锁-gmlock

    示例1,基本使用 示例2,TryLock非阻塞锁 内存锁模块,也称之为动态互斥锁 模块,支持按照给定键名动态生成互斥锁 ,并发安全并支持Try*Lock 特性。 当维护大量动态互斥锁的场景时,如果不再使用的互斥锁对象,请手动调用Remove 方法删除掉。 使用方式 : import "github.com/gogf/gf/v2/os/g...
  • gmlock (内存锁模块)

    gmlock 示例1,基本使用 示例2,TryLock非阻塞锁 gmlock 内存锁模块,也称之为动态互斥锁 模块,支持按照给定键名动态生成互斥锁 ,并发安全并支持Try*Lock 特性。 当维护大量动态互斥锁的场景时,如果不再使用的互斥锁对象,请手动调用Remove 方法删除掉。 使用方式 : import "github.co...
  • gmlock (内存锁模块)

    示例1,基本使用 示例2,TryLock非阻塞锁 内存锁模块,也称之为动态互斥锁 模块,支持按照给定键名动态生成互斥锁 ,并发安全并支持Try*Lock 特性。 当维护大量动态互斥锁的场景时,如果不再使用的互斥锁对象,请手动调用Remove 方法删除掉。 使用方式 : import "github.com/gogf/gf/os/gmlo...