![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
计算机语言
文章平均质量分 59
计算机语言类知识:C语言,C++,JAVA,MYSQL,PYTHON,C#...
@阡陽
好好生活,慢慢相遇。
展开
-
go_分布式锁
同样是在需要乐观锁控制的table中增加一个字段,名称无所谓,字段类型使用时间戳 (timestamp), 和上面的version类似,也是在更新提交的时候检查当前数据库中数据的时间戳和自己更新前取到的时间戳进行对比,如果一致则OK,否则就是版本冲突。在事务从数据库获取到数据前,获取到锁(m.Lock),在事务提交到数据库之后再释放锁(tx.commit之后m.Unlock).但在这个sell()功能中,仍然存在问题:多个不同的商品调用同一个sell方法,不同商品之间也会造成阻塞排队,这是有问题的。原创 2024-03-26 20:53:05 · 787 阅读 · 0 评论 -
redis的setnx、redlock的源码
redis setnx在mutex.lock()方法中。NewMutex方法,对Mutex实例m进行初始化。redsync集成到库存服务中。redlock的原理与源码。原创 2024-03-26 20:51:08 · 312 阅读 · 0 评论 -
mysql的for update实现悲观锁
for update是一种行级锁,又叫排它锁。一旦用户对某个行施加了行级加锁,则该用户可以查询也可以更新被加锁的数据行,其它用户只能查询但不能更新被加锁的数据行。如果其它用户想更新该表中的数据行,则也必须对该表施加行级锁.即使多个用户对一个表均使用了共享更新,但也不允许两个事务同时对一个表进行更新,真正对表进行更新时,是以独占方式锁表,一直到提交或复原该事务为止。行锁永远是独占方式锁。执行提交(COMMIT)语句退出数据库(LOG OFF)程序停止运行。原创 2024-03-25 20:31:35 · 825 阅读 · 0 评论 -
go_反射
反射可以在运行时动态获取变量的各种信息, 比如变量的类型(type),类别(kind)如果是结构体变量,还可以获取到结构体本身的信息(包括结构体的字段方法通过反射,可以修改变量的值,可以调用关联的方法。使用反射,需要 import (“reflect”)示意图。原创 2023-06-11 23:18:47 · 89 阅读 · 0 评论 -
go_客户信息管理系统
客户关系管理的程序框架图。原创 2023-06-05 22:41:11 · 171 阅读 · 0 评论 -
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 · 43 阅读 · 0 评论 -
go_工厂模式
golang:给结构体所在的包提供一个工厂模式的函数,首字母大写,类似一个构造函数原创 2023-06-02 17:11:09 · 82 阅读 · 0 评论 -
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 · 323 阅读 · 0 评论 -
go_时间和日期相关函数
说明::在编程中,程序员会经常使用到日期相关的函数,比如:统计某段代码执行花费的时间等。8)获取当前unix时间戳和unixnano时间戳。(作用是可以获取随机数字)now := time.Now() //now的类型就是time.Time。1)时间和日期相关函数,需要导入time包。2)time.Time类型,用于表示时间。4)如何获取到其他的日期信息。3)获取到当前时间的方法。原创 2023-05-24 13:59:55 · 50 阅读 · 0 评论 -
go_字符串常用的系统函数
go_字符串常用的系统函数原创 2023-05-24 12:43:28 · 44 阅读 · 0 评论 -
go_函数参数的传递方式
2)引用类型默认是引用传递:变量存储的是一个地址,这个地址对应的空间才是真正存储数据值的,内存通常在堆上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成为一个垃圾,由GC(垃圾回收器)来回收。其实,不管是值传递还是引用传递,传递给函数的都是变量的副本,不同的是,值传递的是值的拷贝,引用传递的是地址的拷贝。而值拷贝取决于拷贝的数据大小,数据越大,效率越低。3)如果希望函数内的变量能修改函数外的变量,可以传入变量的地址&,函数内以指针的方式操作变量。值类型和引用类型:值类型参数默认就是值传递;原创 2023-05-23 22:46:10 · 80 阅读 · 0 评论 -
go_闭包
闭包就是一个函数和与其相关的引用环境组合的一个整体(实体)。闭包是一种特殊类型的匿名函数,它引用在函数本身之外声明的变量;是匿名函数与匿名函数所引用环境的组合不仅仅是存储了一个函数的返回值,它同时存储了一个闭包的状态。原创 2023-05-23 17:32:00 · 45 阅读 · 1 评论 -
go_匿名函数
go匿名函数的三种使用方式原创 2023-05-23 15:43:01 · 164 阅读 · 0 评论 -
Go_程序开发注意事项和标识符命名规范
注意:可以简单的理解成,首字母大写是公有的(public),首字母小写是私有的(private)原创 2023-05-17 12:09:44 · 55 阅读 · 0 评论 -
mysql_安装
由于之前已经安装过MySQL,再次安装新的MySQL,发现此时window服务列表中,有两个MySQL服务,如果确定老版本不在使用,可以使用window命令将其删除.Mysql,-u,-p....都非系统本身的命令,是安装好数据库服务,并且配置好环境变量之后,mysql数据库所带的命令,只不过配置之后能在doc窗口运行.连接远程的MySQL服务(通过internet网,对方开放远程连接权限,对方的IP./通过同一个局域网下,对方开放远程连接权限,对方的IP.)1.控制面板-->程序和功能-->卸载.原创 2023-05-15 23:21:35 · 153 阅读 · 1 评论 -
Dos_常用指令
使用echo命令将hello写入到 d:\test100\abc100\abc.txt。如果没有abc.txt文件,则会先创建该文件,再将内容写入文件。切换到当前盘的其他目录下(使用相对路径和绝对路径)删除目录以及下面的子目录和文件,不带询问。删除目录以及下面的子目录和文件,带询问。切换到其他盘下:盘符号。新建或追加内容到文件。原创 2023-05-15 22:40:57 · 36 阅读 · 0 评论 -
go_执行流程分析
如果是对源码编译后,再执行,go的执行流程如下图:如果是对源码直接执行go run go源码,go的执行流程如下图:两种执行流程方式的区别:原创 2023-05-15 12:33:46 · 98 阅读 · 0 评论 -
go语言入门_hello world
通过go run 命令可以直接运行hello.go程序。通过go build 命令对该go文件进行编译,生成.exe文件。在dos命令下执行.exe文件就可以看到运行效果。原创 2023-05-15 11:46:42 · 61 阅读 · 1 评论