时间mutex go
js 浏览器储存数据设置过期时间
vue项目 新建文件sessionTime.js 文件 /** @desc storage相关 */ // type TStorageItem = { // value: any // expire: string|number // time: Date // }; // type = 'loca ......
Go--命名规则
在Go语言中,项目名和文件名的命名规则有一些建议和惯例。以下是一些常见的规则和最佳实践: 项目名: 项目名应该简短、有意义,并能够清晰地表达项目的目的或功能。 项目名通常使用小写字母,使用连字符或下划线分隔单词。 项目名不应包含特殊字符或空格。 项目名应尽量避免与现有的库或包名冲突。 文件名: 文件 ......
Go语言实现GoF设计模式:备忘录模式的实践探索
在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外进行保存,以便在未来将对象恢复到原先保存的状态。 ......
在redis中,如何在创建key的同时,设置key的过期时间
1、通过下面的创建key,同时设置过期时间 SET key value EX seconds 示例: set teskey01 123 ex 60 设置key的过期时间是60s,这样在创建的时候,就开始倒计时了。 通过工具看,TTL,会定期的刷新,到0之后,这个key就会被删除了。 60s后,key ......
go锁基础 - atomic、sema
atomic和sema是实现go中锁的基础,简单看下他们的实现原理。 atomic `atomic 常用来作为保证原子性的操作。 当多个协程,同时一个数据进行操作时候,如果不加锁,最终的很难得到想要的结果。 var p int64 = 0 func add() { p = p + 1 } func ......
获取当前时间、星期
// 获取当前时间、星期 var date_val = ref(""); var time_val = ref(""); // 获取当前时间、星期 const getTime = () => { let date = new Date(); let year: any = date.getFullY ......
时间复杂度为 O(n^2) 的排序算法
对于小规模数据,我们可以选用时间复杂度为 O(n2) 的排序算法。因为时间复杂度并不代表实际代码的执行时间,它省去了低阶、系数和常数,仅代表的增长趋势,所以在小规模数据情况下, O(n2) 的排序算法可能会比 O(nlogn) 的排序算法执行效率高。不过随着数据规模增大, O(nlogn) 的排序算... ......
Golang中如何自定义时间类型进行xml、json的序列化/反序列化
在日常开发工作中,我们进行会遇到将 struct 序列化 json字符串以及将 json字符串 反序列化为 struct 的场景,大家也对此十分熟悉。 最近工作中,遇到了需要将 struct 序列化 xml字符串以及将 xml字符串 反序列化为 struct 的场景,对于普通类型的字段,比如int、 ......
使用Go Validator在Go应用中有效验证数据
使用Go Validator在Go应用中有效验证数据 原创 TimLiu 爱发白日梦的后端 2023-12-01 08:01 发表于广东 作为一名开发者,确保Go应用中处理的数据是有效和准确的非常重要。Go Validator是一个开源的数据验证库,为Go结构体提供强大且易于使用的数据验证功能。本篇 ......
freesql orm 使用 DynamicFilterInfo 拼接日期查询条件时间格式一个难得的经验
文本到时间条件的转换 前端输入 1253-3 , 后台提示"varchar 数据类型到 datetime 数据类型的转换产生一个超出范围的值" 经查询, mssql 【datetime】数据类型:最大是9999年12 月31日,最小是1753年1月1日 所以要拼接限制一下, 只是 if (val.T ......
快速 log2 取整算法 (O(1) 时间与空间复杂度)
先上核心代码(文末附针对多种整数类型的代码): inline int log_2(int x) { int rst = 0; if (x & 0xffff'0000U) rst += 16, x >>= 16; if (x & 0x0000'ff00U) rst += 8, x >>= 8; if ......
go-GMP 协程切换时机 和 协程实战
当m在执行某个g的时候,g非常耗时,例如一个for循环,每次循环sleep1分钟,循环1000次。 这个例子看似无聊,却是很难解决的,成功的避开了2个系统切换时机。 如果这个时候,一直执行这个g,别的g就会得不到执行,例如有g是处理用户支付的,这样就会造成收钱不积极。 协程饥饿问题 本地队列 本地队 ......
go-GMP
go的协程和线程都绕不过GMP,关于GMP基本的工作流程,有go开发经验的大致都懂,这边更多关注GMP如何解决一些类似 协程饥渴的问题,以及底层的大致实现原理。 多线程循环 上篇讲了单线程是如何循环的,这里还是为 GMP的出场 大致介绍下。 工作模型 多个M都去全局G的队列中获取 g,所以,全局g的 ......
通用字符串时间转LocalDateTime对象的例子
import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.time.fo ......
go build 跟 go run 的区别
go build 和 go run 是 Go 语言中两个常用的命令,它们的主要区别在于编译和执行的过程。 1.go run go run 命令用于编译并运行 Go 程序。它将源代码直接编译成可执行文件,并立即运行该文件。这个命令非常适合用于快速测试和运行小规模的代码片段。 使用 go run 命令时 ......
(转)Go实现随机加盐密码认证
原文:https://juejin.cn/post/7068192471498358821 为什么要加密 人们往往有使用同一密码的习惯, 为了防止数据库意外泄露/破坏和出于保护用户隐私的目的, 不应在数据库里存入用户密码明文 实现 代码 scss 复制代码 package main import ( ......
手机电脑同步的时间管理工具
有不少上班族会发现自己有太多的工作要完成,并且在工作中往往会浪费很多时间在无关紧要的事情上,而不是专注于真正重要的任务,因此没有足够的时间来完成所有任务。在这种情况下,我们可以使用时间管理软件来帮助自己优先考虑重要的任务,并为每个任务分配合理的时间。 那么时间管理软件哪个好用呢?手机电脑同步的时间管 ......
Dokcer + nginx + Gitee Go 实现一键化部署你的项目
- 什么是 CICD 是指持续集成、持续发布,是⼀套实现软件的构建测试部署的⾃动化流程。 什么是 DevOps ⼀词是由英⽂ Development(开发)和 Operations (运维)组合⽽成 ⼀种思想,强调软件开发测试运维的⼀体化,减少各个部⻔之间的沟通成本从⽽实现软件的快速⾼质 ᰁ 的发布 ......
自学 --day9---js中的数学操作和时间日期
typora-copy-images-to: media 一、数学处理 1、Math常用API 圆周率 Math.PI // 3.1415926535 生成随机数 Math.random() 生成的是0~1之间的随机小数,通常在实际项目中需要获取到一个范围内的随机整数,利用这个随机小数封装一个获取范 ......
go的GPM - 协程的本质
协程与线程 线程在创建、切换、销毁时候,需要消耗CPU的资源。 协程就是将一段程序的运行状态打包, 可以在线程之间调度。减少CPU在操作线程的消耗 进程用分配内存空间 线程用来分配CPU时间 协程用来精细利用线程 协程的本质是一段包含了运行状态的程序 后面介绍后,会对这个概念更好理解 协程的本质 上 ......
安装go
1. 安装包直接安装 2. 配置环境变量 GOPARH: 新建的,用来存放go项目代码的地址 GOROOT: 你安装go的目录 3. 创建文件目录 在GOPATH地址下面,创建3个文件夹 ......
go数据类型-空结构体、空接口、nil
空结构体 func main() { a := struct{}{} fmt.Println(unsafe.Sizeof(a)) fmt.Printf("%p\n", &a) } 打印 0 0x117f4e0 有经验的开发人员都知道,所有的空结构体是指向一个 zerobase的地址,而且大小为0 一 ......
Java系列---【时间格式合法性校验】
# 不能用LocalDate.parse(),解析不了20230231,默认会解析成20230228,并且不抛异常,用Strict模式,虽然会抛异常但无法解析20230201,推荐下面的 public static boolean isValidDateFormat(String date, Str ......
把时间变为周的一些办法
mysql专用: 周日开始 concat(str_to_date(concat(yearweek(apply_date), ' Sunday'), '%X%V %W'),"~",date_add(str_to_date(concat(yearweek(apply_date), ' Sunday'), ......
Go代码优化
1、Go 语言的 if 语句允许在条件之前传递一个语句。 原始代码: f, contains := factory[string(token)] if contains { // Do something } 优化:(稍微提高了代码的可读性) if f, contains := factory[sT ......
使用vueuse 显示时间
背景 设计图里面包含一个日期显示的东西,查找下!网上很多都是使用js去写 nonono 使用vueuse快速实现一个 两行代码能弄完,还需要那么多干嘛,下班! ......
go数据类型-sync.map
定义 在runtime的sync.map包中有定义: type Map struct { mu Mutex // 锁 read atomic.Pointer[readOnly] //包含了readOnly类型的一个struct,下方把 Pointer 也贴了 dirty map[any]*entry ......
获取今天零点的时间戳
# 获取今天零点的时间戳 # 获取当前时间戳,取余一天的秒数86400,得到今天过了多少秒 # 用当前的时间戳减去今天过去的秒数,得到今天零点的时间戳 # 注意要减去time.timezone获取当前时区的时间戳 import time from datetime import datetime n ......
2023-11-29:用go语言,给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。 需保证 返回结果的字典序最小。 要求不能打乱其他字符的相对位置)。 输入:s = “cba
2023-11-29:用go语言,给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。 需保证 返回结果的字典序最小。 要求不能打乱其他字符的相对位置)。 输入:s = "cbacdcbc"。 输出:"acdb"。 来自左程云。 答案2023-11-29: 所有的代码用灵捷3. ......