- 博客(43)
- 收藏
- 关注
原创 详解Go语言中的Goroutine组(Group)在项目中的使用
Go语言通过其内置的goroutine和通道(channel)机制,提供了强大的并发支持。goroutine的开销非常低,一个goroutine仅占用几KB的内存,可以轻松创建成千上万个goroutine来处理并发任务。然而,随着并发任务数量的增加,管理goroutine的生命周期、处理错误以及保证资源正确回收变得越来越复杂。例如,我们需要处理以下场景:为了解决这些问题,引入了一个结构体,提供了一种更高级的方式来管理一组goroutine。创建函数 函数用于创建一个新的goroutine组实例
2024-07-10 22:09:29
882
1
原创 gin接收图片文件,websocet持续返回响应,解决多任务排队问题
有一个需求是这样的,前端需要通过http请求的form-data上传图片文件,后端接收图片后调用AI接口执行命令,由于命令执行时间较长,需要持续返回当前任务在全局任务列表中的位置,以便前端即时更新排队信息。
2024-05-31 23:33:04
509
原创 Go 多模块工作区处理一个go项目下有多个module(即多个go.mod)的情况
在现在微服务盛行的年代,一个人会维护多个代码仓库,很多的时候是多个仓库进行同时开发,也就是在当前项目下有多个目录,每个目录对应一个微服务,每个微服务都有一个go.mod文件。那么我在其中一个目录下要怎么导入其他目录中的库呢?这是没使用go work的场景,无法识别自定义包(这些包下都各自有各自的go.mod)
2024-05-10 15:41:50
405
原创 MIT6.1810/Fall 2022(which was called 6.S081 then) Lab5-7
COW,多线程,E1000驱动
2024-01-30 16:14:38
1011
原创 Stanford CS106B 2022 Assignment 9. Huffman Coding 解析
CS106B最后一次作业,实现一个霍夫曼树对文件的压缩解压缩操作
2023-10-16 15:38:20
108
原创 Stanford CS106B 2022 Assignment 7. The Great Stanford Hash-Off解析
这部分介绍了如何用c++实现线性勘测表和罗宾汉哈希表
2023-10-14 00:28:03
73
原创 尝试找到一组班次,使员工在不超过最大小时数限制的情况下获得最大的价值,CS106B ASSIGNMENTS3 Shift Scheduling
使用递归来探索所有可能的班次组合,并在每一步中考虑两种选择:选择当前班次或不选择当前班次。它会根据最大小时数限制和班次之间的重叠情况来做出选择。最终,它返回产生最大价值的班次组合。
2023-10-05 19:17:03
60
原创 一句话里面有n个英语单词,每个单词有可能小写也可能大写,给出所有情况组成的集合,选自CS106B 2022Winter Assignment 3 Recursion Part Three
用递归和回溯的思想解决类似于枚举所有子集的问题
2023-09-29 23:58:02
96
原创 使用多线程,批量处理接口优化业务,模拟电商系统中用户下单场景
性能调优本质:解决用户体验与资源的矛盾。进行性能调优的业务场景:用户下单->web服务(控制层) ->web服务(服务层) -(依次去各微服务去调用后端服务器的接) ->得到接口的结果后返回给用户
2023-09-20 00:04:35
471
原创 什么是Docker以及如何使用Docker部署Go Web应用和Docker Compose模式
通过docker compose把微服务项目部署在多个容器中,并且可以相互通信,本文还介绍了docker的知识
2023-09-05 20:16:07
269
原创 GO微服务中使用RocketMQ消息队列系统实现分布式事务
RocketMQ消息队列系统用于实现电商购物demo中创建订单服务中分布式事务,关于分布式事务和消息队列也有介绍
2023-09-02 15:46:44
746
原创 GO微服务中分别用乐观锁,悲观锁,redis分布式锁解决购物平台并发扣库存问题
在购物平台中,扣库存是一个非常关键的操作,涉及到多个并发的操作,比如多个用户同时购买同一商品,或者同时购买多个商品等。在这种情况下,如果不加锁,可能会导致数据不一致、库存错误等问题。
2023-08-31 11:39:30
535
原创 使用grpc-gateway来完成把http请求转换为rpc请求
当我们使用微服务架构完成了项目后,可以使用grpc-gateway来完成把http请求转换为rpc请求
2023-08-30 02:02:57
356
1
原创 GO微服务开发中consul注册中心使用详解
很多初学者在刚刚接触微服务时对服务注册中心了解较少,本文详细介绍什么是consul以及consul怎么用
2023-08-28 14:36:53
427
8
原创 实现一个函数返回树中长度至少为n的所有路径的列表,题目选自CS61A 2021 LAB9 Q11: Long Paths
递归与回溯,深度优先搜索在二叉树中的运用
2023-03-23 19:56:42
111
原创 根据提供的索引在链表的相对位置插入一个元素并且链表的地址不能改变,题目选自CS61A 2021 LAB9 Q8
在链表表头前插入节点如何让链表的地址不发生改变
2023-03-22 21:24:15
57
原创 卡塔兰数用于求解不同形态的二叉树的数目,题目选自CS61A2021 LAB9 Q3: Number of Trees
卡特兰数C_n代表n个节点的二叉树不同构的方案数
2023-03-22 11:18:38
275
原创 如何给树的每个节点添加数量为此节点深度的新节点,题目选自CS61A2021 LAB8 Q6:Add Leaves
当求解树任一节点深度困难时如何解决需要深度的问题
2023-03-21 12:44:11
246
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人