wire是Google开源的一款代码生成工具,通过依赖注入来自动链接不同的组件。
Go标准库atomic
在 Go 语言标准库中,sync/atomic
包将底层硬件提供的原子操作封装成了 Go 的函数。但这些操作只支持几种基本数据类型,Go 语言在 1.4 版本的时候向sync/atomic
包中添加了一个新的类型Value
。此类型的值相当于一个容器,可以被用来“原子地”存储(Store)和加载(Load)任意类型的值。
Use Go Embed
Go1.16引入新的//go:embed指令,可以在编译时嵌入文件和目录,并对其进行访问。通过它,真正做到部署时只有一个二进制文件。
背景:2021-02-16,Go Team正式发布了Go1.16。该版本包含下面的一些重要变化:
- embed 包和 //go:embed 指令
- 增加对 macOS ARM64 的支持
- 默认启用 Module
- io/fs 包
- 弃用io/ioutil
最后,还有许多其他改进和错误修复,包括构建速度提高了 20-25%,linux/amd64上内存使用量减少了 5-15%。有关更改的完整列表以及有关上述改进的更多信息,请参阅 Go 1.16 发行说明。
区分换行符
CRLF, LF 是用来表示文本换行的方式。CR(Carriage Return) 代表回车,对应字符 '\r';LF(Line Feed) 代表换行,对应字符 '\n'。不同的操作系统
Docker搭建FTP服务器
使用Docker搭建FTP服务。使用的镜像是fauria/vsftpd 1. 拉取镜像 1 docker pull fauria/vsftpd 2. 运行镜像 1 2 3 4 5 6 7 8 9 10 11 12 13 docker run -d --name vsftpd -v ~/sftp:/home/vsftpd \
@Bean和@Component
@Component and @Bean do two quite different things, and shouldn’t be confused. @Component (and @Service and @Repository) are used to auto-detect and auto-configure beans using classpath scanning. There’s an implicit one-to-one mapping between the annotated class and the bean (i.e. one bean per class). Control of wiring is quite limited with this approach, since it’s purely declarative. @Bean is used to explicitly declare a single bean, rather than letting Spring
Mysqldump
Mysql的mysqldump详解
Dead_lock
并发通常是指与一个或者多个进程同时发生的过程,通常这也意味着所有这些进程在同一个时间取得进展。并发的代码很难构建,通常需要几个迭代才能,让它按照预期的方式运行。而在并发编程时,都会遇到同样的问题,计算机的科学家已经对共同的问题进行了标记。
Mysql_kill_process
使用kill命令可以杀掉等待msyql线程。