自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 搭建一个类似于ChatGPT的GUI

因此,通过使用OpenAI的模型,我们可以创建一个更具对话性和交互性的系统,使得系统能够更好地理解用户的意图,并生成适当的响应。通常情况下,传统的编程逻辑可能是基于一系列的条件和规则来处理用户的输入,并给出相应的响应。在流式传输中,数据被分成较小的块,在发送方生成这些块时就立即传输给接收方,而无需等待全部数据生成完毕。OpenAI的模型可以接收用户的输入文本,并根据上下文进行推理、生成响应。流式传输(Streaming)是一种数据传输的方式,它允许在发送方生成数据的同时,接收方可以逐步接收和处理这些数据。

2023-11-15 16:34:21 182 1

原创 模板模式学习

我们现在要增加一个零元单的需求,已知所有的订单类型都是同样的骨架,而每个订单的子逻辑的具体实现会有所不同,对于零元单,它的促销校验的子逻辑是不同于其它订单类型的,零元单的ExpectPromotion和ActualPromotion不一致,但是我们不能让它返回错误,应该直接返回nil,因此我们可以通过模板模式实现重写零元单的子逻辑。虽然go不能支持直接用嵌套结构体类似于其他语言中继承的方式实现模板模式,不过go提供接口和组合,使用接口也可以实现继承和多态的作用,可以通过接口加结构体嵌入的方式实现模板模式。

2023-11-13 00:53:27 116 1

原创 四种限流算法

限流算法

2023-10-18 21:52:25 94 1

原创 Go的Context机制

Context又叫做上下文,是在Goroutine中传递值,取消信号和截止时间的机制。Context接口中包含Deadline方法、Done方法、Err方法和变量Value。Deadline方法用于设置超时取消时间Done方法用于实现级联取消Err方法用于说明任务取消原因变量Value用于在上下文中传递数据// 返回执行截止时间以及一个布尔值说明是否被取消// 返回一个用于接收取消信号的只读通道// 当Context被取消或者超过截止时间时,通道关闭。

2023-08-30 15:28:29 71

原创 Go并发模型从GM到GMP的演变

GM模型 GMP模型

2023-08-12 19:22:04 334 1

原创 Go的内存分配机制

go的内存分配

2023-08-12 18:25:02 286 1

原创 crontab联合飞书机器人发送定时消息任务

【代码】crontab联合飞书机器人发送定时消息任务。

2023-08-01 15:45:20 147 1

原创 用Linux三剑客分析统计日志数据

linux三剑客grep、sed、awk 日志分析

2023-05-31 21:49:16 797

原创 git常见问题整理总结

git push报错

2023-05-29 22:20:11 79

原创 304状态码 CDN md5

可以应用于客户端的缓存:服务器产生ETag,并在HTTP响应头中将其传送到客户端,服务器用它来判断页面是否被修改过,如果未修改返回304,无需传输整个对象。就在靠近用户的地方,建一个缓存服务器,把远端的内容,复制一份,放在这里。和镜像不同,CDN不是完全复制,它是针对性的复制部分内容。这样做的目的是为了防止浏览器下载重复的信息浪费资源,节省带宽,提高页面响应速度。304虽被划分在3XX类别中,但和重定向没有关系。MD5 根据文件的内容用算法产生一个唯一的128位签名,用任何方法改变文件都会导致签名改变。

2023-05-26 23:09:04 161

原创 认识go协程

go语言内部为其实现了内存共享,执行goroutine只需要极少的栈内存(大概4-5kb),并且goroutine是由用户在go中直接调度使用的。可以发现,主协程先执行,主协程之外的协程在主协程的基础上并发执行,不过一旦主协程退出,其他协程也强制退出。协程泄漏是因为我们不停的去创建协程,以为协程都会正常退出,而实际上协程阻塞到一直无法退出。根据实践来看,大部分的协程泄漏都和管道的阻塞有关系,比如试图从空管道中读数据,试图从满的管道中写数据。只需在函数调用语句前添加go关键字,就可创建并发执行单元。

2023-04-13 21:42:00 83 1

原创 go协程实现1~100w累加

go协程实现1~100w累加。

2023-03-14 21:42:52 313

原创 go的原子操作 atomic

go的原子操作 atomic包

2023-03-13 22:02:44 79

原创 go程序判断单链表中是否有环

使用双指针遍历链表,定义快慢指针fast,slow,让它们开始分别指向头结点,头结点的next结点。首先判断该链表是否为空表(head.next==nil),如果非空,则开始遍历,

2023-03-06 21:37:59 176

原创 报错记录:no such tool “compile“

运行go get github.com/remeh/sizedwaitgroup报错go tool: no such tool “compile”

2023-03-02 18:33:59 1005

原创 【linux中起一个服务 要求使用curl命令 tcpdump抓包和wireshark分析】

tcpdump抓包 wireshark分析

2023-02-07 22:21:43 372

原创 Linux命令

linux命令 git命令

2023-02-06 23:25:25 115

原创 操作系统学习

操作系统

2023-01-09 23:01:01 111

原创 滑动窗口思想

滑动窗口思想题目:给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。#double findMaxAverage(int* nums, int numsSize, int k) { int sum = 0,i; for (i = 0; i < k; i++) { sum += nums[i]; } int maxSum = sum; for (i = k; i < numsSize; i++) {

2021-02-04 20:43:53 84

原创 2021-01-20

数组1.数组的初始化int a[3]={1,2,3};2.Linux上机基本命令步骤#cd duzhiruo#mkdir duzhiruo#cd duzhiruo/#ls#vim 文件名(新建or查看)#gcc 文件名(编译)#./a.out3.举例注:Tab键 补全文件名esc键+wq 结束文件编辑vim+i 修改已有文件...

2021-01-20 23:15:50 65

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除