单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 要保证线程安全 package main import ( "fmt" "sync" "time" ) type Singleton struct { } var singleton Singleton va...
golang 中介者模式
中介者模式是一种行为设计模式。此模式是创建一个中介对象,以防止对象之间的直接交互,从而避免它们之间的直接依赖关系。 一个很好的中介模式的例子是铁路系统平台,两列火车之间是相互独立的,站长充当调停者,使站台仅对其中一列列车可用。列车通过站长交互,站长维持着等候...
CentOS7 systemctl service
CentOS7创建服务,下面展示了两个简单的例子,这样就可以用systemctl命令启动、停止、重启进程以及查看进程状态。 如: systemctl start gonetdisk systemctl stop gonetdisk systemctl status gonetdisk 配置简介 [Unit]区块通常是配置文件的第一个区块,用来...
CentOS7 debuginfo-install
CentOS7 debuginfo-install 允许debuginfo源 vim /etc/yum.repos.d/CentOS-Debuginfo.repo 将enabled改为1 安装debuginfo-install yum install glibc-debuginfo yum-utils 安装调式信息包和依赖 debuginfo-install libgcc-4.8.5-44.el7.x86_64 ...
CentOS7 U盘安装 No Caching mode page found
[sda] No Caching mode page found [sda] Assuming drive cache: write through U盘安装CentOS7的时候出现上述错误的解决方法。 此时会卡在这里,不要着急耐心等待,超时会输出错误信息(10分钟左右),等待可以输入命令的时候: ls /dev/sd 输出如下,每个机器的电...
CentOS6 yum The requested URL returned error: 404 Not Found
CentOS6不再维护了,目前机器需要更换yum源,地址:https://vault.centos.org/ CentOS 6 is now End of Life and there are no more updates Red Hat have pulled the plug on RHEL 6.x as of Nov 30th 2020 and as a result CentOS 6 is now a dead version. The ...
jemalloc C++实践
jemalloc是一种通用的malloc(3)实现,优点是避免内存碎片和可伸缩并发支持。 下载源码 wget https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2 解压 tar -jxvf jemalloc-5.2.1 编译安装 cd jemalloc-5.2.1 ...
C++11 实现defer
defer函数功能还是蛮常用的,它是在出当前作用域的时候执行,用来回收资源非常合适,可惜C++里面没有,以前实现起来都比较别扭现在用C++11实现后看起来简单多了。 此defer内部lambda表达式捕获的是引用; 同一个作用域内先定义的defer后执行; 使用define以及xy连...
微信本地图片格式转化
PC端微信收到的图片存储在本地,我们可以打开微信的设置->通用设置->文件管理->打开文件夹,在FileStorage/Image日期目录下找到图片文件,但是它经过了简单的加密并且后缀为.dat。 通过下面这个算法可以将dat文件还原成原始图片,目前支持jpg,gif,png三种格式,其他格式应该...
golang vscode launch.json配置
每次调试运行都要先打开main.go然后在菜单里点击Run->Start Debugging或者F5比较麻烦,主要是每次都要定位了main.go文件,这样当我编辑完其他文件后,都要切换一下才能运行。 下面增加一下Launch.json配置就可以直接点击左侧的debug按钮运行了,在Launch菜单下的Add Con...
gin多模板、模板嵌套使用方法
在做一个web应用的时候,通常多个页面会共用同一个模板,只是每个页面的内容不同。如网页的导航栏、菜单栏、footer是共用的。我们写代码的时候也只需要写一个主模板页面frame.html,内容空出来给具体的页面来实现,如:主页index.html,文章页面post.html,错误页面error.html等等,...
Qt 正确的显示窗口
显示窗口看起来很简单,但是有一些细节要注意的。通常有下面几种情况需要展示一个窗口: 1. 第一次创建后展示 2. 窗口最小化 3. 窗口不在最前面 4. 窗口销毁后再次创建(同第1种) 注意: 这里说的不是通过任务栏来激活窗口,而是通过用户设计的按钮或者菜单来打...