Golang教程网
Golang教程网
  • 博客首页
  • 实战学习Golang
  • 日常工作实战
  • 小程序实战开发
    • 微信小程序开发
    • 百度智能小程序开发
    • QQ小程序开发
    • 头条小程序开发
    • 支付宝小程序开发
  • 学习笔记
  • 搜索
golang源码分析:推荐系统gorse(part I)
发表于 2023-07-27

con gorse使纯go实现的一套分布式推荐系统解决方案:https://github.com/zhenghaoz/gorse,包含了master,worker和server三个部分。 整套模型中包含了三个实体:用户、物料、反馈用户通过一个ID来唯一标示 物料包含一个时间戳,通过它来判断物料是否过期,Lables是物料的特征 反馈的类型可以是正向、负向或者中性( positive (like)

算法07:Golang字符串搜索BM算法
发表于 2023-07-27

算法07:Golang字符串搜索BM算法 1. 什么是BM算法 1977 年,德克萨斯大学的 Robert S. Boyer 教授和 J Strother Moore 教授发明了一种新的字符串匹配算法:Boyer-Moore 算法,简称 BM 算法. 该算法 从模式串的尾部开始匹配,且拥有在最坏情况下 O(N) 的时间复杂度.有数据表明,在实践中,比 KMP 算法的实际效能高,可以快大概 3-5

《Golang学习数据结构和算法》中文版 第6篇
发表于 2023-07-27

享元(Flyweight) 享元用来管理一个带有高度变化对象的状态。这个模式允许我们多个对象之间共享对象状态的公共部分,而不是共享存储它的每个对象。变化的对象数据看做外部状态,而对象状态的其余部分是内部状态。外部数据被传给享元方法且不会被存储在对象里。 享元模式 有助于减少整体内存使用和对象初始化开销。此模式有助于创建类之间关系和降低内存到可管理水平。 享元对象是不可变的

Golang教程之不可重入函数的实现方法
发表于 2023-07-27

函数function Go函数不支持嵌套、重载和默认参数 但支持以下特性: 无需声明原型 不定长度变参 多返回值 命名返回值参数 匿名函数 闭包 前言 一个不可重入的函数就是一个在任何时间点只能执行一次的函数,不管它被调用了多少次,以及有多少goroutines。 本篇文章说明了阻塞不可重入函数,并在golang中产生不可重入的函数实现。 场景用例 某个服务是对某些条件进行轮询

从源码深入理解golang RWMutex读写锁操作
发表于 2023-07-27

环境:go 1.19.8 在读多写少的情况下,即使一段时间内没有写操作,大量并发的读访问也不得不在Mutex的保护下变成串行访问,这种情况下,使用Mutex,对性能影响比较大。所以就要区分读写操作。如果某个读操作的g持有了锁,其他读操作的g就不必等待了,可以并发的访问共享变量,这样就可以将串行的读变成并行的读,提高读操作的性能。可理解为共享锁。 当写操作的g持有锁,它是一个排他锁

golang不可重入是什么意思
发表于 2023-07-27

在计算机科学领域中,重入是指一个函数在执行期间可以被多次调用的特性。但是,有些语言或环境并不支持函数的重入。在 Golang 中,函数不是可重入的,这是由于 Golang 本身的设计决策所导致的。首先,让我们了解什么是不可重入函数。一个不可重入函数是指一个不能同时执行多个实例的函数。由于 Golang 的内存管理系统和协程调度机制,如果有两个协程同时调用不可重入函数,那么数据可能会被非法覆盖

Redis如何实现可重入锁的设计
发表于 2023-07-27

这篇文章主要介绍Redis如何实现可重入锁的设计,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 但是仍然有些场景是不满⾜的,例如⼀ 个⽅法获取到锁之后,可能在⽅法内调这个⽅法此时就获取不到锁了。这个时候我们就需要把锁改进成可 重⼊锁了。 重⼊锁,指的是以线程为单位,当⼀个线程获取对象锁之后,这个线程可以再次获取本对象上的锁,⽽其 他的线程是不可以的

Go语言如何实现可重入锁?
发表于 2023-07-27

前言asongGoGojavaGo什么是可重入锁java假设现在有多个村民在水井排队打水,有管理员正在看管这口水井,村民在打水时,管理员允许锁和同一个人的多个水桶绑定,这个人用多个水桶打水时,第一个水桶和锁绑定并打完水之后,第二个水桶也可以直接和锁绑定并开始打水,所有的水桶都打完水之后打水人才会将锁还给管理员。这个人的所有打水流程都能够成功执行,后续等待的人也能够打到水。这就是可重入锁

Golang sync.Mutex源码分析
发表于 2023-07-27

sync.Mutex是一个不可重入的排他锁。 这点和Java不同,golang里面的排它锁是不可重入的。当一个 goroutine 获得了这个锁的拥有权后, 其它请求锁的 goroutine 就会阻塞在 Lock 方法的调用上,直到锁被释放。 数据结构与状态机   sync.Mutex 由两个字段 state 和 sema 组成。其中 state 表示当前互斥锁的状态,而 sema

golang-浅析mutex
发表于 2023-07-27

相信使用golang的小伙伴,对于mutex一定不陌生,对于多goroutine的并发访问的情况下使用最频繁的并发原语非mutex莫属了。背景-互斥锁 当程序中有一部分代码会出现并发访问或者修改的情况,需要采取特殊手段将这部分代码保护起来以免出现数据错乱的问题,这部分被保护起来的代码叫做临界区,例如对数据库的修改访问,对全局共享资源的访问修改 。如果多个线程(协程)同时访问临界区

第一页 上一页 1 ... 997 998 999 1000 下一页 尾页
友情链接: 免费取名网 安企CMS 商家收款码申请 AI学习网 Hello Web3
© 2026 Golang教程网, Created By 安企内容管理系统(AnqiCMS)