书栈网 · BookStack 本次搜索耗时 0.031 秒,为您找到 10458 个相关结果.
  • 09.2 Goroutines

    Goroutines Goroutines 在Go语言中使用go关键字后跟函数名称或定义完整的匿名函数即可开启一个新的Goroutine,使用go关键字调用函数后会立即返回,该函数在后台作为Goroutine运行,程序的其余部分继续执行 但是,如上所述,您无法控制您的Goroutine的执行顺序,因为这取决于操作系统的调度程序,Go调度程序以及...
  • 5.4 panic 和 recover

    5.4 panic 和 recover 5.4.1 现象 跨协程失效 失效的崩溃恢复 嵌套崩溃 5.4.2 数据结构 5.4.3 程序崩溃 5.4.4 崩溃恢复 5.4.5 小结 5.4 panic 和 recover 本节将分析两个经常成对出现的关键字 panic 和 recover 。这两个关键字都与 defer 有千丝万缕的...
  • g0 栈何用户栈如何切换

    参考资料 上一讲讲完了 main goroutine 的诞生,它不是第一个,算上 g0,它要算第二个了。不过,我们要考虑的就是这个 goroutine,它会真正执行用户代码。 g0 栈用于执行调度器的代码,执行完之后,要跳转到执行用户代码的地方,如何跳转?这中间涉及到栈和寄存器的切换。要知道,函数调用和返回主要靠的也是 CPU 寄存器的切换。goro...
  • DOM Events

    699 2019-07-21 《Vugu Document》
    Important Using the browser's Document Object Model (DOM) , events can be attached to HTML elements by providing an attribute of the event name prefixed with @ . For example <di...
  • 1.5 面向并发的内存模型

    4250 2019-02-27 《Go语言高级编程》
    1.5 面向并发的内存模型 1.5.1 Goroutine和系统线程 1.5.2 原子操作 1.5.3 顺序一致性内存模型 1.5.4 初始化顺序 1.5.5 Goroutine的创建 1.5.6 基于Channel的通信 1.5.7 不靠谱的同步 1.5 面向并发的内存模型 在早期,CPU都是以单核的形式顺序执行机器指令。Go语言的祖...
  • Leaf 的模块机制

    Leaf 的模块机制 Leaf 的模块机制 一个 Leaf 开发的游戏服务器由多个模块组成(例如 LeafServer ),模块有以下特点: 每个模块运行在一个单独的 goroutine 中 模块间通过一套轻量的 RPC 机制通讯(leaf/chanrpc )Leaf 不建议在游戏服务器中设计过多的模块。 游戏服务器在启动时进行模块的注册,例如...
  • 2、Golang的协程调度器原理及GMP设计思想?

    3766 2021-03-17 《Golang 修养之路》
    2、Golang的协程调度器原理及GMP设计思想? 一、Golang“调度器”的由来? (1) 单进程时代不需要调度器 (2)多进程/线程时代有了调度器需求 (3)协程来提高CPU利用率 N:1关系 1:1 关系 M:N关系 (4)Go语言的协程goroutine (5)被废弃的goroutine调度器 二、Goroutine调度器的GM...
  • gmlock (内存锁模块)

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

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

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