书栈网 · BookStack 本次搜索耗时 0.072 秒,为您找到 10458 个相关结果.
  • gmlock (内存锁模块)

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

    Channel 可能会引发 goroutine 泄漏。 泄漏的原因是 goroutine 操作 channel 后,处于发送或接收阻塞状态,而 channel 处于满或空的状态,一直得不到改变。同时,垃圾回收器也不会回收此类资源,进而导致 gouroutine 会一直处于等待队列中,不见天日。 另外,程序运行过程中,对于一个 channel,如果没有任...
  • nil channel VS closed channel

    nil channel VS closed channel nil channel VS closed channel The zero value of channel type is nil , and the send and receive operations on a nil channel will always block. Ch...
  • context 是什么

    Go 1.7 标准库引入 context,中文译作“上下文”,准确说它是 goroutine 的上下文,包含 goroutine 的运行状态、环境、现场等信息。 context 主要用来在 goroutine 之间传递上下文信息,包括:取消信号、超时时间、截止时间、k-v 等。 随着 context 包的引入,标准库中很多接口因此加上了 context...
  • 10.3.1 方式1

    方式1 方式1 第一个技巧的源码保存在 timeOut1.go 中,并分为四部分介绍。 timeOut1.go 的第一部分显示如下代码: package main import ( "fmt" "time" ) timeOut1.go 第二段代码如下: func main () ...
  • PProf服务性能分析

    PProf 启用 EnablePProf StartPProfServer PProf 指标 PProf 页面 性能采集分析🔥 CPU性能分析 内存使用分析 goroutine使用分析 GoFrame 框架的Web Server 提供了非常强大和简便的服务性能分析功能,内部完美集成了pprof 性能分析工具,可以在任何时候通过Enab...
  • M 如何找工作

    参考资料 在 schedule 函数中,我们简单提过找一个 runnable goroutine 的过程,这一讲我们来详细分析源码。 工作线程 M 费尽心机也要找到一个可运行的 goroutine,这是它的工作和职责,不达目的,绝不罢体,这种锲而不舍的精神值得每个人学习。 共经历三个过程:先从本地队列找,定期会从全局队列找,最后实在没办法,就去别的 ...
  • 标记-清除(mark & sweep)

    标记-清除(mark & sweep) 标记-清除(mark & sweep) 标记-清除算法是第一种自动内存管理,基于追踪的垃圾收集算法。算法思想在 70 年代就提出了,是一种非常古老的算法。内存单元并不会在变成垃圾立刻回收,而是保持不可达状态,直到到达某个阈值或者固定时间长度。这个时候系统会挂起用户程序,也就是 STW,转而执行垃圾回收程序。 垃...
  • 09.3 优雅地结束goroutines

    优雅地结束goroutines 优雅地结束goroutines 本节内容将介绍如何使用go标准库中的sync包来解决上一节提到的Goroutine中的任务还未执行完成,main()函数就提前结束的问题。 本节的代码文件为syncGo.go,我们基于上一节的create.go来扩展syncGo.go。 syncGo.go的第一部分代码如下: p...