![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang
文章平均质量分 80
星星泡个饭
是喜欢那!
展开
-
Golang语言设计模式的实现—代理模式
代理模式是一种结构型设计模式,它允许通过代理对象控制对另一个对象的访问。它的基本思想是创建一个代理对象,进行逻辑处理的原对象通常被称作 服务对象,代理要跟服务对象实现相同的接口,才能让客户端傻傻分不清自己使用的到底是代理还是真正的服务对象,这样一来代理就能在客户端察觉不到的情况下对服务对象的处理逻辑进行增强。原创 2023-06-30 17:48:08 · 1153 阅读 · 0 评论 -
深入理解Golang之Map
Map的实现主要有两种方式哈希表(hashtable)和搜索树(searchtree)。例如Java中的hashMap是基于哈希表实现,而C++中的Map是基于一种平衡搜索二叉树——红黑树而实现的。Go中map的基于哈希表(也被称为散列表)实现。...原创 2022-07-30 21:41:46 · 1168 阅读 · 2 评论 -
golang之GMP调度模型
G:一个G代表一个goroutine,协程的本质是用户态的线程,用户对其有控制权限,内存占用少,切换代价低。M:内核态线程,一个M代表了一个内核线程,等同于系统线程,所有的G都要放在M上才能运行。P:逻辑处理器,可以承载若干个G,并且使这些G适时的与M对接,一个P代表了M所需的上下文环境。P的个数取决于设置的GOMAXPROCS, go新版本默认使用最大内核数,比如你有8核处理器,那么P的数量就是8M的数量和P不一定匹配,可以设置很多M,M和P绑定后才可运行,多余的M处于休眠状态。系统会通过调度器从全原创 2022-07-14 09:08:45 · 1165 阅读 · 0 评论 -
casbin模型
subject(sub访问实体),object (obj访问的资源) 和 action (act访问的方法) eft (策略结果 一般为空,默认指定allow) 还可以定义为denyp:策略 一般存储到数据库,因为会有很多m:匹配规则 会把r和p按照匹配原则进行匹配,从而返回匹配结果 (eft)如果不定义会返回allow 如果定义过了,会返回我们定义过的那个结果r:请求e:影响 这里的规定是定死的role_definition 角色域g= _ , _ 表示以角色为基础,前者是后者原创 2022-06-13 22:09:10 · 404 阅读 · 0 评论 -
Golang 垃圾回收机制详解
目录一、垃圾回收概念二、常用的垃圾回收算法引用计数标记——清除算法三色标记算法标记——整理算法分代收集算法三、屏障技术四、运行模式1.增量式垃圾回收2.并行垃圾回收3.并发垃圾回收参考一、垃圾回收概念有些编程语言(C、C++)需要手动释放那些不再需要的、分配在堆上的数据,这叫做“手动垃圾回收”,但是如果数据释放过早,后续对数据的访问就会出错,因为被释放的内存可能已经被清空或者重新分配;如果忘记释放,数据会一直占用内存,出现“内存泄漏”,所以越来越多的编程语言支持“自动垃圾回收”。由运行时识别不再有用的原创 2022-04-25 12:44:17 · 2849 阅读 · 0 评论