关于go语言中的协程相关知识点总结(一)
关于进程,线程和GO协程
程序:它是一个文
在实际开发中unix线程切换,经常会使用到go协程来处理一些耗时的操作,今天有时间把工作中遇到的知识点和一些坑记录下来,分享出来,先从简单的说起 吧 关于进程,线程和GO协程 程序:它是一个文件,其中包含用于初始化 进程的指令和用户数据部分的指令和数据 进程:它是包含计算机指令,用户数据和系统数据的程序执行环境,以及包含其运行时获得的其他类型资源 线程:它相对于进程是更加小巧而轻量的实体,线程由进程创建且包含自己的控制流和栈,区别:进程是正在 运行的二进程文件,而线程是进程的子集 Goroutine是Go程序并发执行的最小单元,它生活在Unix进程的线程中,优点非常轻巧,上下文切换非常快 关于Go调试器 Go运行时使用的自己的调度程序,与Unix内核调度程序不一样,Go调度器使用称为m:n的调度技术负责执行Goroutine,这个模型叫MPG调度模式. M可以理解为系统中线程,P可以理解为运行时的上下文环境,G可以认为是go协程 这里不细说了,网上有好多关于MPG模型的文章,可以好 好看看就懂了 创建Goroutine协程 使用go关键字就可以开启一个协程
优雅的关闭goroutine协程 上面的通过time.Sleep()来实现,这是在工作中 不合理的,原因是我们不知道协程执行完成需要多长时间,所以这种方式不合适,下面这种才是在工作中推荐的
由于篇幅原因,先记录这些,下一篇继续 分享 关于go协程中通信channel(通道)的知识点关注我 不迷路!!!!!!关注我 不迷路!!!!!!关注我 不迷路!!!!!! (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |