- 博客(53)
- 资源 (26)
- 收藏
- 关注

原创 C++实现线程安全的的双缓冲实例
业务场景:多线程的业务系统不断写入数据到内存中,同步线程不断读取数据并同步redis设计方案:由于业务非常适合map的结构,因此采用了双层maptypedef std::map<int,int> EventCountMap;typedef std::map<int,EventCountMap> RuleEventCountMap;为了实现读写分离,采用双...
2018-07-22 13:23:52
4103
1

原创 每天吃多少才不会胖?食物和卡路里对照表
对于想减肥塑身的同好们,想必最关心的一个问题就是人一天吃多少卡路里不会长胖?下面就是我搜罗的食物卡路里一览表,希望对大家有用。
2016-01-31 15:30:44
37028

原创 Linux文件系统详解(文件系统层次、分类、存储结构、存储介质、文件节点inode)
本文按照自己的理解从硬件磁盘到文件系统的逐层网上的思路开展,从操作系统的角度详解Linux文件系统层次、文件系统分类、文件系统的存储结构、不同存储介质的区别(RAM、ROM、Flash)、存储节点inode。
2015-04-24 08:50:18
44243
9
原创 VirtualBox磁盘扩容
在Win10上用VirtualBox创建虚拟机时以为分配10G的磁盘空间足够了,谁知道装完环境之后都快满了,但是又不想删掉重开一个虚拟机,因此就需要扩充磁盘空间。首先关闭虚拟机。我的VirtualBox安装目录为:C:\Program Files\Oracle\VirtualBox虚拟机磁盘vdi所在目录为:D:\ubuntu18.vdicmd打开命令行,首先进入VirtualBox安装目录,然后执行命令:VBoxManage.exe modifyhd "D:\ubuntu18.vd...
2021-11-01 14:18:59
4675
原创 hive 解析json对象的数组,并完成列传行
参考链接:https://blog.youkuaiyun.com/lfq1532632051/article/details/63262519直接上例子,下面是我要处理的 json 数据格式{ "IP": "192.168.1.1", "appName": "sichuan_yunyingyong", "customEvent": [ { "eventName": "xx1", "du": "xx", ...
2020-10-21 15:48:05
667
原创 Linux CPU调度策略
在谈调度策略前,我们先做一些假设。 每个任务都运行相同的时间 所有任务到达的时间都是一样的 一旦运行了,任务就会运行到完成。 所有的任务只占用cpu资源 任务的运行时间是已知的 这里的大部分假设都是不切合实际的,但是这个假设帮助我们更好的去理解和描述调度器。 我们定义周转时间为完成时间减去任务到达时间。 Tturnaround = Tcom...
2020-03-07 12:15:34
3982
原创 C++友元函数友元类
C++面向对象的特性,需要很多特殊的设计,来满足各种使用需求,比如:1。类的实例化对象希望共享一些属性和方法,类似于C语言的公共头文件,而设计了静态成员,区别于C语言的地方是,静态数据成员必须进行初始化。2。针对指向常对象的指针和指向对象的常指针,而设计了常对象,常成员,通过常成员函数来访问常数据成员。3。针对基类指针根据派生类不同而希望实现多种形态的需求,设计了虚函数。那么...
2020-03-07 12:13:47
348
原创 C++静态数据的初始化
in$ cat static.cpp #include <iostream> using namespace std; class ClassA { public: ClassA() { cout << "ClassA Constructor!" << endl; } void Func() { ...
2020-03-07 12:12:32
1727
原创 linux管道pipe父子进程通信的示例
父进程打开的文件描述符在子进程仍然保持打开,文件描述符的引用计数+1,不仅如此,父进程用户根目录、当前目录等变量的引用计数也会+1.即使调用exec函数,文件描述符也不会关闭,除非设置了SOCK_CLOEXEC属性。#include <stdio.h>#include <stdlib.h>#include <string.h>#include &...
2020-03-07 12:08:25
590
原创 C++ STL remove和erase的区别及使用
remove是一个函数,头文件是algorithm;erase是每个容器的成员函数。在介绍之前先介绍v.begin()和v.end():v.begin()指的是第一个元素;v.end()值得最后一个元素的下一个位置;vector<int>::iterator it;it=remove(v.begin(),v.end(),4);//删除值为4的元素。每删除一...
2020-03-07 12:04:51
1688
转载 windows VsCode golang环境配置
安装完vscode,打开.go文件时,vscode会推荐安装go扩展插件,但是vscode中有些go的插件总是提示安装fail。如golint插件,解决办法如下:cd $GOPATH/src/golang.org/x/git clone https://github.com/golang/tools.git进入到%GOPATH%下,执行 go install github.co...
2019-02-21 13:17:34
1208
原创 C++设计模式(一)单例模式
C++单例模式也称为单件模式、单子模式。使用单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出等。单例模式有许多种实现方法,a. 懒汉式:使用的时候才创建,多线程访问的时候线程不安全(双检锁)b. 饿汉式:类文件加载的时候已经创建好了对象,如果对象一直没有使用,则类对象浪费空间特点与选择:如果要进...
2018-08-04 13:24:10
6642
3
原创 centos7 Golang vim IDE
接触Golang之后使用过许多的编辑器比如lite,sublime3,goland,lite更适合在windows环境使用,对于非destop版本的Linux就不太适用了,在linux下还是直接上神器vim了,为了快速开发自然要安装许多便捷的插件首先vim的插件安装有两种形式,一直直接自己安装到~/.vim/plugin目录下 另外一种是使用插件管理器Vundle(还有其他的插件管理器)开始之前准...
2018-06-17 14:26:38
3472
1
转载 Qt 基本数据类型转换(int,float,double,datetime,string)
转发:http://blog.youkuaiyun.com/tgzjz/article/details/45074237在由int, float, double 这样的基本数据类型转换为QString的方法大致如下:以int为例:[cpp] view plain copyint tmp = 125; QString str_
2016-08-20 16:17:20
21542
原创 Apache [error] server reached MaxClients setting, consider raising the MaxClients setting
最近公司有个客户报了一个问题,就是运行一段时间后在apache的日志/var/log/httpd/error_log文件中有一条错误信息[Fri Jul 29 15:45:37 2016] [error] server reached MaxClients setting, consider raising the MaxClients setting检查了一下,这是由于并发链接数太多导致
2016-07-30 12:45:58
1575
转载 linux下编译qt5.6.0静态库——configure配置
转自:http://www.cnblogs.com/oloroso/p/5407779.htmllinux下编译qt5.6.0静态库linux下编译qt5.6.0静态库configure生成makefile安装选项Configure选项第三方库:附加选项:QNX/Blackberry 选项:Android 选项:生成makefile
2016-07-22 10:28:34
8792
原创 把静态编译的QT添加到QTCreator当中创建新工程
How to integrate static version of Qt additionally to QtCreatorOpen QtCreator and go to the Tools / Options menu. Select Qt4:Add a new version by pressing the plus button enter a name and
2016-07-21 21:51:09
2807
原创 MinGW静态编译windows QT5.x
MinGW静态编译windows QT关于静态编译windows 版本的QT参考官网的链接: [http://wiki.qt.io/Building_a_static_Qt_for_Windows_using_MinGW][6]
2016-07-21 19:50:36
572
原创 centos Apcache 防DDOS攻击mod_evasive安装配置
今天服务器受到严重的DDOS攻击,导致远程控制几乎都无法进去,系统基本死机,从网络上找到关于APACHE的防DDOS工具,参考之后发现无法安装,转载过来后做了一些实验和修改。下面给出使用了Apache的防模块mod_evasive,具体安装配置如下:一、下载模块--------需要提前安装apxs - Apache 扩展工具yum install httpd-devel
2016-07-20 16:57:46
1682
转载 OpenGL,glx,glaux,glut,freeglut,glew,glfw,mesa
转自:http://www.lai18.com/content/1297257.html一、OpenGLOpenGL函数库相关的API有核心库(gl),实用库(glu),辅助库(aux)、实用工具库(glut),窗口库(glx、agl、wgl)和扩展函数库等。gl是核心,glu是对gl的部分封装。glx、agl、wgl 是针对不同窗口系统的函数。glut是为跨平台的OpenGL
2016-07-16 15:34:29
2045
原创 php匹配字符串URL并替换为超链接
//注意,这里把上面的正则表达式中的单引号用反斜杠转义了,不然没法放在字符串里$regex = '@(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()]+|(\([^\s()]+|(\([^\s()?«»“”‘’]))@';var_dump( preg_ma
2016-07-13 15:44:55
3893
转载 javascript 正则匹配url并添加<a>标签
//写的url正则匹配var reg = /((http|ftp|https):\/\/)?[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/g;//获取需要处理的HTMLvar str = $('.content').html();//正则替换str=str.rep
2016-07-13 11:07:23
4205
原创 Mac sublime text3 快捷键
For Mac打开/前往⌘T前往文件⌘⌃P前往项目⌘R前往 method⌘⇧P命令提示⌃G前往行⌘KB开关侧栏⌃ `pyth
2016-04-29 09:37:24
2128
原创 Mac 安装homebrew
Homebrew官网 http://brew.sh/index_zh-cn.htmlHomebrew是神马linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案,Red hat有yum,Ubuntu有apt-get 神马,你用mac os,不好意Mac os木有类似的东东,泪奔中几经折腾总算找到了第三方支持:Homebrew,Homebre
2016-04-29 09:34:35
50734
2
原创 常用的vim命令
多行注释:1. 进入命令行模式,按ctrl + v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来2. 按大写字母I,再插入注释符,例如//3. 按esc键就会全部注释了取消多行注释:1. 进入命令行模式,按ctrl + v进入 visual block模式,按字母l横向选中列的个数,例如 // 需要选中2列
2016-04-29 09:31:46
520
原创 解决安装ECshop时PHP版本大于5.2时的问题
随着PHP5.5 的普及,ECSHOP系统又爆出了新的错误。PHP发展到PHP5.5版本以后,有了很多细微的变化。而ECSHOP官方更新又太慢,发现这些问题后也不及时升级,导致用户安装使用过程中错误百出。1.说了半天,这个新错误到底是什么呢,它的完整错误提示信息是这样的:Deprecated: preg_replace(): The /e modifier is depreca
2016-02-26 14:52:41
3978
原创 git fetch 与git pull 区别
Git中从远程的分支获取最新的版本到本地有这样2个命令:1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge git fetch origin mastergit log -p master..origin/mastergit merge origin/master 以上命令的含义: 首先从远程的origin的master主分支下载最新的版本到
2016-01-31 17:38:51
478
原创 程序员接私活那点事儿
周末闲来无事,整理文档的同时发现了非著名程序员的一篇好文章,让接私活的我颇有同感,现结合自身经验整理如下,希望对各位技术和精力有余的程序员有所帮助!程序员都很累,但是热爱程序的人又累得其所,所以虽然很多程序员都很忙,加班是常事,但是钱哪有挣够的啊,闲不住的程序员总想着干点私活赚点外快。私活可能确实是比做个小软件加上广告来钱来的快,但是以目前或将来的趋势真心不适合单独的个人开发者来做,为什么这么说,且听我一一道来!
2016-01-31 16:29:59
1235
原创 linux之链表和哈希表应用浅析一
1. Linked Lists Linux使用一种软件工程技术将它的数据结构连接在一起。多数情况下它使用链表数据结构。如果每一个数据结构描述一个物体或者发生的事件的单一的实例,比如一个进程或一个网络设备,核心必须能够找出所有的实例。在链表中,根指针包括第一个数据结构或单元的地址,列表中的每一个数据结构包含指向列表下一个元素的指针。最后元素的下一个指针可能使0或NULL,表示这是列表的结尾。
2016-01-31 16:01:25
1230
原创 Linux操作系统Swapping(交换)
Memory Management (内存管理)内存管理子系统是操作系统的重要部分。从计算机发展早期开始,就存在对于大于系统中物理能力的内存需要。为了克服这种限制,开发了许多种策略,其中最成功的就是虚拟内存。虚拟内存通过在竞争进程之间共享内存的方式使系统显得拥有比实际更多的内存。虚拟内存不仅仅让你的计算机内存显得更多,内存管理子系统还提供: Large Address Spaces
2016-01-31 15:58:10
6808
1
原创 Linux进程管理
进程执行操作系统中的任务。程序是存放在磁盘上的包括一系列机器代码指令和数据的可执行的映像,因此,是一个被动的实体。进程可以看作是一个执行中的计算机程序。它是动态的实体,在处理器执行机器代码指令时不断改变。处理程序的指令和数据,进程也包括程序计数器和其他CPU的寄存器以及包括临时数据(例如例程参数、返回地址和保存的变量)的堆栈。当前执行的程序,或者说进程,包括微处理器中所有的当前的活动。Linux是
2016-01-31 15:54:28
462
原创 从汇编语言角度理解C语言栈帧
在C语言的调用约定中,栈是现实函数的局部变量、参数和返回值地址的关键因素。函数执行前、执行过程以及执行后程序分别干了什么事情?在整个过程中唯一不变的就是基址指针寄存器,位于返回地址和函数变量之间,通过+N*4(%ebp)可以访问函数参数和返回地址,通过-N*4(%ebp)可以访问局部变量。函数执行前:程序将函数的参数逆序压栈,接着发出一条Call指令,表明程
2016-01-08 13:46:06
1639
1
原创 软件项目开发的标准化文档编写
在项目开发过程中,应该按要求编写好十三种文档,文档编制要求具有针对性、精确性、清晰性、完整性、灵活性、可追溯性。 ◇ 可行性分析报告:说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理由。 ◇ 项目开发计划:为软件项目实施方案制订出具体计划,应该包括各部分工作的负责人员、开发的进度
2016-01-08 13:44:09
2749
1
原创 软件版本之Alpha、Beta、RC、GA、Release解惑
Alpha: Alpha是内部测试版,一般不向外部发布,会有很多Bug.除非你也是测试人员,否则不建议使用.是希腊字母的第一位,表示最初级的版本,alpha 就是α,beta 就是β ,alpha 版就是比beta还早的测试版,一般都是内部测试的版本。 Beta: 该版本相对于α版已有了很大的改进,消除了
2016-01-08 13:42:30
1991
原创 阿里云CentOS6.5挂载数据盘以及搭建LAMP环境
系统约定 软件配置:软件源代码包下载位置/data/download软件源代码包存放位置源代码包软件源代码包下载位置/usr/local/srcApache 源码包编译安装位置存放/usr/local/apach
2016-01-08 13:17:45
1889
原创 Notepad++常用快捷键
在windows下写Code的时候发现了两款比较好用的代码编辑工具,Sublime Text和Notepad++。前者比较适合web开合,后者则针对其他,两者都有比较强大的代码处理功能。用起来感觉比Eclipse这种大型工具简单方便许多,本文结合实际使用经验罗列了Notepad++的一些快捷键,用起来炫酷无比
2015-05-11 11:07:41
686
原创 linux 查看当前用户id、whoami用户列表、用户组、用户权限/etc/passwd、/etc/group、/etc/shadow以及切换用户身份、su、sudo、/etc/sudoers
在网上上搜索了几个帖子,结合自身经验,详细说明了用户、用户组、用户权限、切换用户等常用命令(id、whoami、sudo、su)和配置文件(/etc/passwd、/etc/group、/etc/sudoers),一篇文章满足你的需求。
2015-04-30 09:32:00
36080
1
图解网络硬件 PDF完整版
2015-05-30
存储技术原理分析 基于Linux 2.6内核源代码 part2
2015-04-29
存储技术原理分析 基于Linux 2.6内核源代码
2015-04-29
计算机程序的构造和解释
2015-03-29
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错
2013-08-13
MySQL5.5中文参考手册
2012-10-23
linux命令行查看图片
2012-09-27
linux下强大的视频播放工具mplayer.txt解释
2012-07-24
操作系统第三版 汤小丹 课后习题答案
2010-11-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人