自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 go_分布式锁

同样是在需要乐观锁控制的table中增加一个字段,名称无所谓,字段类型使用时间戳 (timestamp), 和上面的version类似,也是在更新提交的时候检查当前数据库中数据的时间戳和自己更新前取到的时间戳进行对比,如果一致则OK,否则就是版本冲突。在事务从数据库获取到数据前,获取到锁(m.Lock),在事务提交到数据库之后再释放锁(tx.commit之后m.Unlock).但在这个sell()功能中,仍然存在问题:多个不同的商品调用同一个sell方法,不同商品之间也会造成阻塞排队,这是有问题的。

2024-03-26 20:53:05 693

原创 redis的setnx、redlock的源码

redis setnx在mutex.lock()方法中。NewMutex方法,对Mutex实例m进行初始化。redsync集成到库存服务中。redlock的原理与源码。

2024-03-26 20:51:08 277

原创 mysql的for update实现悲观锁

for update是一种行级锁,又叫排它锁。一旦用户对某个行施加了行级加锁,则该用户可以查询也可以更新被加锁的数据行,其它用户只能查询但不能更新被加锁的数据行。如果其它用户想更新该表中的数据行,则也必须对该表施加行级锁.即使多个用户对一个表均使用了共享更新,但也不允许两个事务同时对一个表进行更新,真正对表进行更新时,是以独占方式锁表,一直到提交或复原该事务为止。行锁永远是独占方式锁。执行提交(COMMIT)语句退出数据库(LOG OFF)程序停止运行。

2024-03-25 20:31:35 760

转载 grpc的metadata---拦截器--验证器--状态码-yapi安装

metadata是以key-value的形式存储数据的,其中key是string类型,value是[]string类型,即一个类型。metadata使得client和server能够为对方提供关于本次调用的一些信息,就像一次http请求的RequestHeader和ResponseHeader一样。http中header的生命周期是一次http请求,那么metadata的生命周期就是一次RPC调用。metadata机制:源数据可以做权限验证。

2023-12-09 12:47:57 105

转载 yapi的安装和配置

但是,有一些关键的地方,有的人可能容易出错,我这里边也做了一个截图,大家根据文档里面的一系列配置之后,一步一步的往下走,就能够看到我这里面的截图了。【简单,听话,照做,信心】如果接口数量成百上千,一个个手动测试是很要命的,所以这时候可以用 yapi 中的测试集合来帮助我们完成测试,文档写的非常详细,我们要做的就是根据文档里面的步骤一步一步地来配置。有了这个配置,就不用管容器依赖的启动顺序的问题。一键部署yapi的一个开源的项目:【秀的雅痞】该文件的作用是记录项目实现的过程,重点记录。

2023-12-09 10:21:01 104

转载 如何完美的复制他人的博客到自己的CSDN博客上

CSDN是中文第一大互联网技术网站,上面有很多好的文章,有时候需要复制别人的文章到自己的文章下进行修改重新发布,这要怎样做呢?一篇喜欢的博客属于自己的csdn账号chrome浏览器。

2023-12-09 09:44:39 682

原创 go_反射

反射可以在运行时动态获取变量的各种信息, 比如变量的类型(type),类别(kind)如果是结构体变量,还可以获取到结构体本身的信息(包括结构体的字段方法通过反射,可以修改变量的值,可以调用关联的方法。使用反射,需要 import (“reflect”)示意图。

2023-06-11 23:18:47 81

原创 go_Json序列化与反序列化

应用场景。

2023-06-07 17:24:09 191

原创 go_文件操作

文件的概念文件,对我们并不陌生,文件是数据源(保存数据的地方)的一种,比如大家经常使用的word 文档,txt 文件,excel 文件...都是文件。文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声音...输入流和输出流os.File 封装所有文件相关操作,File 是一个结构体总结:后面我们操作文件,会经常使用到 os.File 结构体.

2023-06-07 11:01:50 105

原创 go_客户信息管理系统

客户关系管理的程序框架图。

2023-06-05 22:41:11 153

原创 go_类型断言

import ("fmt"//类型断言的其他案例x = b2 //空接口,可以接收任意类型// x=>float32 [使用类型断言]fmt.Printf("y 的类型是 %T 值是=%v", y, y)对上面代码的说明:在进行类型断言时,如果类型不匹配,就会报 panic, 因此进行类型断言时,要确保原来的空接口指向的就是断言的类型.如果在进行断言时,带上检测机制,如果成功就 ok,否则也不要报 panicimport ("fmt"x = b2 //空接口,可以接收任意类型。

2023-06-04 16:15:33 36

原创 go_工厂模式

golang:给结构体所在的包提供一个工厂模式的函数,首字母大写,类似一个构造函数

2023-06-02 17:11:09 72

原创 go_内置函数builtin

go程序中,也支持自定义错误,使用errors.New和panic内置函数。1)errors.New("错误说明"),会返回一个error类型的值,表示一个错误2)panic内置函数,接收一个interface{}类型的值(也就是任何值)作为参数。可以接受error类型的变量,输出错误信息,并退出程序。import ("errors""fmt"// 函数去读取以配置文件init.conf的信息// 如果文件名传入不正确,我们返回一个自定义的错误//读取return nil。

2023-05-24 18:05:10 284

原创 go_时间和日期相关函数

说明::在编程中,程序员会经常使用到日期相关的函数,比如:统计某段代码执行花费的时间等。8)获取当前unix时间戳和unixnano时间戳。(作用是可以获取随机数字)now := time.Now() //now的类型就是time.Time。1)时间和日期相关函数,需要导入time包。2)time.Time类型,用于表示时间。4)如何获取到其他的日期信息。3)获取到当前时间的方法。

2023-05-24 13:59:55 40

原创 go_字符串常用的系统函数

go_字符串常用的系统函数

2023-05-24 12:43:28 34

原创 go_函数参数的传递方式

2)引用类型默认是引用传递:变量存储的是一个地址,这个地址对应的空间才是真正存储数据值的,内存通常在堆上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成为一个垃圾,由GC(垃圾回收器)来回收。其实,不管是值传递还是引用传递,传递给函数的都是变量的副本,不同的是,值传递的是值的拷贝,引用传递的是地址的拷贝。而值拷贝取决于拷贝的数据大小,数据越大,效率越低。3)如果希望函数内的变量能修改函数外的变量,可以传入变量的地址&,函数内以指针的方式操作变量。值类型和引用类型:值类型参数默认就是值传递;

2023-05-23 22:46:10 64

原创 go_闭包

闭包就是一个函数和与其相关的引用环境组合的一个整体(实体)。闭包是一种特殊类型的匿名函数,它引用在函数本身之外声明的变量;是匿名函数与匿名函数所引用环境的组合不仅仅是存储了一个函数的返回值,它同时存储了一个闭包的状态。

2023-05-23 17:32:00 36 1

原创 go_匿名函数

go匿名函数的三种使用方式

2023-05-23 15:43:01 145

原创 Go_程序开发注意事项和标识符命名规范

注意:可以简单的理解成,首字母大写是公有的(public),首字母小写是私有的(private)

2023-05-17 12:09:44 45

原创 mysql_安装

由于之前已经安装过MySQL,再次安装新的MySQL,发现此时window服务列表中,有两个MySQL服务,如果确定老版本不在使用,可以使用window命令将其删除.Mysql,-u,-p....都非系统本身的命令,是安装好数据库服务,并且配置好环境变量之后,mysql数据库所带的命令,只不过配置之后能在doc窗口运行.连接远程的MySQL服务(通过internet网,对方开放远程连接权限,对方的IP./通过同一个局域网下,对方开放远程连接权限,对方的IP.)1.控制面板-->程序和功能-->卸载.

2023-05-15 23:21:35 108 1

原创 Dos_常用指令

使用echo命令将hello写入到 d:\test100\abc100\abc.txt。如果没有abc.txt文件,则会先创建该文件,再将内容写入文件。切换到当前盘的其他目录下(使用相对路径和绝对路径)删除目录以及下面的子目录和文件,不带询问。删除目录以及下面的子目录和文件,带询问。切换到其他盘下:盘符号。新建或追加内容到文件。

2023-05-15 22:40:57 31

原创 go_执行流程分析

如果是对源码编译后,再执行,go的执行流程如下图:如果是对源码直接执行go run go源码,go的执行流程如下图:两种执行流程方式的区别:

2023-05-15 12:33:46 83

原创 go语言入门_hello world

通过go run 命令可以直接运行hello.go程序。通过go build 命令对该go文件进行编译,生成.exe文件。在dos命令下执行.exe文件就可以看到运行效果。

2023-05-15 11:46:42 48 1

原创 GPIO输出

GPIO(General Purpose Input Output)通用输入输出口可配置为8种输入输出模式引脚电平:0V~3.3V,部分引脚可容忍5V输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等。

2023-04-26 13:53:40 245 1

原创 STM32F103C8T6板子介绍

此处,STM32F103C8T6板子的Flash容量为64K,所以该板子为中容量产品(如果是野火的STM32F103系列板子(如指南者、霸道),则是大容量产品(在使用STM32F10XX时,我们一般使用。将BOOT0引脚置1,BOOT1引脚置0。并在FlyMcu软件进行。

2023-04-25 23:31:36 7821

原创 如何将USB TO TTL 与 STM32F103C8T6 连接

此时我们需要将两者的TX、RX的引脚交错相接,即USB TO TTL的RXD、TXD分别与系统板的TX、RX相接(即接入系统板的PA9、PA10引脚)。而USB TO TTL有以下引脚:电源(5V、VCC 、3.3V、GND)、RXD、TXD。1、如果没有搜索到串口或串口不可用,则可能是没有安装CH340插件,建议关闭防火墙进行安装。通过观察可知,系统板中有以下引脚:3.3V、GND、SWDIO、SWCLK。系统板的TX、RX分别对应PA9、PA10引脚。将BOOT0引脚置1,BOOT1引脚置0。

2023-04-25 23:31:35 8509 11

空空如也

空空如也

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

TA关注的人

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