C++编程小技巧 boost内存池(线程安全)#include <boost/pool/singleton_pool.hpp>typedef boost::singleton_pool<NewData, sizeof(NewData)> NewDataPool;NewData *p = (NewData*)NewDataPool::malloc(); 申请内存NewDataPool::free(p); 释放noncopyable禁止拷贝操作#include <boos
c++变长模板 template<typename... Args>inline auto sort_tuple(const std::tuple<Args...>& tp) { if constexpr (sizeof...(Args) == 2) { auto [a, b] = tp; if constexpr (!std::is_same_v<decltype(a), ormpp_key> && !std::is_same_v<decl..
多线程之条件变量 在C++11可以使用条件变量(condition_variable)实现多个线程间的同步操作;当条件不满足时,相关线程被一直阻塞,直到某种条件出现,这些线程才会被唤醒。主要成员函数: 1、wait函数:(1)wait(unique_lock <mutex>&lck) 没有第二个参数收到notify时直接返回不阻塞当前线程的执行会被阻塞,直到收到 notify 为止。(2)wait(unique_lock <mutex>&lck,Predicate pred)当前
ubuntu 20.04服务升级常见错误 ubuntu 20.02服务升级常见错误执行svn checkout 命令报错 An error occurred during SSL communication#修改/usr/lib/ssl/openssl.cnf 文件#开头添加 如下openssl_conf = default_conf#末尾添加[ default_conf ]ssl_conf = ssl_sect[ssl_sect]system_default = ssl_default_sect[ssl_default_s
网络文件系统的安装配置使用 需求: 192.168.1.6配置可访问192.168.1.12的某个路径下的文件1、安装nfs服务sudo apt install nfs-server2、服务端安装sudo apt install rpcbind3、客户端安装sudo apt install nfs-common4、配置文件 /etc/exportsvi /etc/exports加入/root/test/MK_TOOL/DealData 192.168.1.6(rw,sync,no_root_squa.
gdb附加调试技巧和常用命令 启动时进行调试:gdb 进程名gdb后台服务调试技巧:有的程序运行后台进行调试需要sudo权限sudo gdb 输入密码后shell comand: 可在gdb下使用 shell命令,例如 shell ps -ef | grep 进程名 (可查看到进程ID)attach pid:(使用attach 附加到进程中进行调试 类似vs的调试->附加到进程)b 设置断点(支持行号,文件名:行号,函数名,文件名:函数名 等)display 变量: 查看变量的值 类似pwatch 变量: 执
工作中使用到的nginx配置 #user nobody;worker_processes auto;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events{ worker_connections 1024; multi_accept on;}#http协议 多个监听端口配置
编写CMakeLists常使用的函数和示例 CMakeLists文件示例cmake_minimum_required(VERSION 3.5) #cmake最低版本要求project(Test) #工程名set(CMAKE_CXX_STANDARD 11) #c++11 设置set(CMAKE_BUILD_TYPE DEBUG) # debug版set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")add_def
linux 更换svn账号或svn更新校验和不匹配 步骤linux切换svn账号cd ~/.subversion/auth/rm -rf *删除~/.subversion/auth/下的文件 执行svn update 会提示输入用户密码按照提示输入svn 用户密码 svn 更新源码出现校验和不匹配问题对应目录执行svn update 之后, 如果更新源码出现校验和不匹配问题(即更新不下最新的代码)解决方法:1.进入出现问题的文件所在的目录2.执行命令svn update --set-depth empty3.执行命令svn u
Ubuntu 18.04 安装 zoroc-ice 使用16.04命令安装方式不能成功,只能采用源码安装方式首先编译依赖 libssl-dev libbz2-dev mcpp libexpat1-dev 需要先安装本机 sudo apt-get install 方式用不了,只能采用aptitude install 方式下载wget https://github.com/zeroc-ice/ice/archive/v3.6.3.tar.gz tar zxf v3.6.3.tar.gztip: 下载对应版本只需要更改版本号即可 如下载v3.6
Zeroc Ice概念和原理 Ice ObjectIce Object是一个可以对客户端请求进行应答的对象可位于本地地址空间也可位于远程地址空间Ice Object使用全局唯一的Object Identity 对象标识符区别其他类型对象Ice Object拥有一个或者多个接口,一个是主接口其余成为FacetIce Object在服务端具体化为一个Servant实例(用某种语言实现Slice接口并新建的对象就是Servant)Ice Object与Servant之间使用Object Adapter进行关联Object Ad
vs开发工具必备插件 vs开发工具必备插件和下载必备插件下载方法工欲善其事,必先利器必备插件Go To Definition作用: 快速跳转到定义使用方法:鼠标指到需要跳转的地方 Ctrl + 鼠标左键VsVim相当于linux的vi/vimIndent Guides作用:在if else 块增加虚线 很容易找到if 搭配的elseViasfora作用: 对函数和判断给出色彩鲜明的括号下载方法工具-->扩展和更新-->搜索相应的插件安装重启vs即可
查询datetime类型 前/后几天 几时几分几秒的数据的SQL语句 查询 前/后几天 几时几分几秒的数据查询 昨天00:00:00~当天23:59:00的数据查询 昨天00:00:00~昨天23:59:00的数据查询 当天00:00:00~当天23:59:00的数据查询 昨天00:00:00~当天23:59:00的数据SELECT * FROM ref_region_map_v2 WHERE update_time >=DATE_FORMAT(DATE_SUB(CURRENT_DATE(),INTERVAL 1 DAY),'%Y-%m-%d 0
mysql主从同步配置 必知:此方案不是实时的数据有延迟核心:通过二进制日志文件(数据库的增删改记录都会存在该文件中)实现原理二进制日志事件:master将数据库增删改的数据记录到二进制日志文件中(binary log)slave 通过I/O操作 将master的二进制日志拷贝到中继日志文件中(relay log)中继日志事件:slave 通过sql线程将数据同步到slave服务中配置配置前检查防火墙和授权远程访问master配置1.授权远程访问use mysql;GRANT ALL PR
foreign key 和on delete/update cascade用法 步骤确立表关系即主表和被关联表需要先建立被关联表(需指定)create table 表名( 字段名 类型 [限定条件], 字段名 类型 [限定条件],);如:create table deptment ( dep_id int primary key, dep_name char(20), dep_comment char(256) );建立主表限定关联表create table 表名( 字段名 类型 [限定条件], 字段名 类型 [限定条件],
深入mysql 数值类型选取的精度 在这之前我也是小白,总觉得int(10) 代表的是存储宽度整数类型tinyint 1字节 有符号范围 (-128,127) 无符号范围(0,256)smallint 2字节 有符号范围 (-32768,32767) 无符号范围 (0,65536)mediumint 3字节 有符号范围(-8388608,8388607) 无符号范围 (0,16777215)int,integer 4字节 有符号范围(-2147
mysql 修改表结构 语法修改表名 rename table 原表名 to 新表名; 【新版本】 alter table 表名 rename 新表名;删除字段alter table 表名 drop 子段名称修改子段名 MODIFY 子段名 数据类型[约束条件]; alter table 表名 CHANGE 旧字段 新字段 旧数据类型 [约束条件]; CHANGE 旧字段 新字段 新数据类型[约束条件];新增字段
MySQL 数据库引擎进阶 数据库三个分支DDL 语句数据库定义语句: 例如 数据库,表,视图,索引 存储过程 CREATE DROP ALTERDML语句数据库操作语句 : INSERT DELETE UPDATE SELECT (增、删、改、查’)DCL语句数据库控制语句: 控制访问权限GRANT,REVOKE安装mysql后自动生成的三个库test库mysql 数据库系统自动创建的数据库information_schema库虚拟库不占空间存储数据库启动后的