自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 Linux下查看一个进程中所有线程及其运行的简略信息

ps -mp pid -o THREAD,tid,time[root]# ps -mp 1 -o THREAD,tid,timeUSER %CPU PRI SCNT WCHAN USER SYSTEM TID TIMEroot 22.5 - - - - - - 1-02:47:59root 0.0 19 - hrtime - - 1 00:00:05root 0.4 ...

2021-05-20 16:00:30 350

原创 make接收宏定义参数

makefile接收make参数并传递到代码里面ifneq($(strip$(DEF_SVR_OFFSET_INDEX)),)DEFINES+=-DDEF_SVR_OFFSET_INDEX=$(DEF_SVR_OFFSET_INDEX)endif

2021-03-11 11:30:33 825

原创 C++ map hash , [] 和 find的区别

map 和 hashmap 在使用上需要注意 [] 和 find的区别,数据不存在时 [] 会开辟内存 而find 不会。这个特性很重要。这个特性很重要,假如一个map当前size是1,使用[]访问一个不存在的key时,你再去取size,发现 size变成2 了,就是这么叼。***再假如,高并发多线程程序访问map 或 hash 的时候,为了提高性能使用读写锁,如果你再读锁里面使用[] 访问一个不存在的数据时,那就有可能崩溃了。******...

2021-02-24 18:02:41 589

原创 new对象数组的时候怎么设置构造函数参数

问题:c++中有带参数构造函数的类,new对象数组的时候怎么设置构造参数?比如classUser{intm_age;public:User(inta_age):m_age(a_age){}};User*l_us =new User[6];//怎么把参数放进去呢解决方法:intl_age=10000;// 分配内存User*l_us=(User*)operatornew(6*sizeof(User));for(inti=...

2021-01-23 15:02:08 1526

原创 文件多行替换

单行替换的时候我基本上使用sed命令,sed命令多行替换的操作不大熟悉,还好找到了perl。替换前cat aaaaa.iniDBIP=192.168.100.100port=9905替换后cat aaaaa.iniDBIP=192.168.100.110port=9023执行命令sudo perl -0777 -i -pe "s/DBIP=192.168.100.100\ndbport=9905/DBIP=192.168.100.110\ndbport=9023/ig" aaaa

2021-01-04 20:05:22 319

原创 服务端数据落地方案

数据落地方案Redis 是一个高性能的key-value数据库,服务端程序广泛的使用它缓存业务数据,甚至于达到滥用的程度。我们最担心的一个问题就是万一redis崩溃了怎么办,里面的数据如果恢复,应该采用什么方式去落地保存。下面就根据不同的业务场景来提出几种不同的落地方案。1、写压力小、读压力大的数据。方案:同步写mysql,然后同步写redis。2、写压力大的数据。方案:同步写redis,然后异步写mysql;数值类的数据要采用增量的方式写,防止redis崩溃时覆盖回写脏数据。3、写压力

2020-09-07 12:15:12 520

原创 boost bind 和 boost function学习

#include<iostream>#include<boost/function.hpp>#include<boost/bind.hpp>usingnamespacestd;boolsome_function(inta,intb){cout<<"a="<<a<<"b="<<b<<endl;returna<b...

2020-06-24 20:29:12 163

原创 C++从圆弧中随机一个点

#include<iostream>#include<cmath>#include<vector>#include<random>#include<stdio.h>usingnamespacestd;constinteps=1e-2;//精度#definePI3.1415926...

2019-12-06 00:52:19 577

原创 C++ mysql 连接 设置编码

创建mysql连接之后为连接设置一下 utf8 编码

2019-10-14 22:19:12 365

原创 C++ map转换到vector

/************************************************************************* > File Name: map2vec.cpp > Author: chenhui > Mail: ********* > Created Time: 2019年08月 5日 22:45:15...

2019-08-05 22:54:24 5986

转载 架构 之 染色日志

作者:匿名用户链接:https://www.zhihu.com/question/20292868/answer/21643316来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。底层的rpc框架实现的,其实就是给每一次请求的源头处,加上一个seqence id(id内容可以是qq号+时间戳+随机数),每次记日志的时候,都打把seqence id打出来,rpc...

2019-07-23 20:14:25 1294

原创 C++ stl list 踩坑

C++ stl list 获取size()函数非常慢,跟shi一样,生产环境中使用被坑了,有时间看一下源码,严重怀疑是现算的。#include <iostream>#include <list>#include <stdlib.h>#include <stdio.h>#include <sys/types.h>#inc...

2019-07-20 23:58:20 573

原创 redis lua脚本实现原子操作

通过lua脚本封装原子操作,对一个key设置比旧数据大的数值,并返回大的数值;如果redis里面不存在该key,直接设置。 eval "local a=redis.call('GET',KEYS[1]) if a==false then redis.call('SET',KEYS[1],ARGV[1]) return ARGV[1] elseif tonumber(ARGV[1])>t...

2019-06-22 21:37:12 2261

原创 开源实时流媒体播放服务器程序

DarwinStreamingServer(即DSS)是Apple公司提供的开源实时流媒体播放服务器程序。整个程序使用C++编写,在设计上遵循高性能,简单,模块化等程序设计原则,务求做到程序高效,可扩充性好。并且DSS是一个开源的基于标准的流媒体服务器,可以运行在WindowsNT和Windows2000,以及几个UNIX实现上,包括MacOSX,Linux,FreeBSD和Sol...

2019-04-29 16:29:14 1360

原创 GDB attach 调试运行中的程序

程序运行时,某个线程在某个逻辑分支卡住了一直出不来,逻辑比较复杂,判断不出来是哪个位置。因此用gdb attach 跟踪现在线程卡在哪个位置。gdb attach [pid] 调试某个进程info threads 查看该进程内所有的线程 状态thread [tid] 进入某个线程bt ...

2019-03-12 22:49:41 1700

原创 基于Grafana + Influxdb 的程序内性能监控

基于Grafana + Influxdb 的程序内性能监控https://www.cnblogs.com/davidwang456/p/7795263.htmlhttps://blog.csdn.net/baomw/article/details/89146300

2019-03-06 22:23:33 229

原创 任务优先级

事情的优先级从紧急程度和重要程度两个方面去考虑。

2019-03-06 14:12:27 708

转载 mysql数据存在时update,不存在时insert

https://www.cnblogs.com/liaojie970/p/6824773.html

2019-02-19 18:33:41 2453

原创 MSEC

https://github.com/Tencent/MSEC

2018-12-22 14:07:49 509

原创 被MYSQL MVCC(多版本并发控制) 坑的经历

高并发insert记录时,主键ID大的可能会比主键ID小的记录先提交成功。(以后再补充)

2018-12-13 17:03:17 631 1

原创 C++ vector 中使用pair

#include &lt;iostream&gt;#include &lt;vector&gt;using namespace std;int main(){    // int64_t li64test;    // cout&lt;&lt;li64test&lt;&lt;endl;    std::vector&lt;pair&lt;int,int&gt; &gt; vec; ...

2018-11-28 20:46:19 1824

转载 json和protobuf互转

Javahttp://code.google.com/p/protobuf-java-format/C++https://github.com/shramov/json2pbPythonhttps://github.com/NextTuesday/py-pb-converters导入模块pbjson.py即可使用。ps. 原始模块的pb2json函数会自动过滤protob...

2018-11-20 14:24:46 2646

原创 Linux C++ 信号量学习 sem_init sem_post sem_wait sem_timedwait

一、函数简介信号量的数据类型为结构sem_t,它本质上是一个长整型的数。函数sem_init()用来初始化一个信号量。它的原型为:  extern int sem_init __P ((sem_t *__sem, int __pshared, unsigned int __value));  sem为指向信号量结构的一个指针;pshared不为0时此信号量在进程间共享,否则只能为当前进程...

2018-10-11 21:49:17 8338

原创 C++ librdkafka一次崩溃记录

1、失败的地方#define rd_assert(EXPR)  assert(EXPR)2、realloc失败realloc非常容易失败,当内存比较大时!https://zhidao.baidu.com/question/2011437754906553988.html3、原因定位:rebalance回调会导致realloc崩溃 ...

2018-09-18 17:37:13 910

原创 使用boost库实现的 http get操作

/* * HttpBoostCL.h * *  Created on: 2018年4月10日 *      Author: Administrator */#ifndef BOOSTSTUDY_HTTPBOOSTCL_H_#define BOOSTSTUDY_HTTPBOOSTCL_H_#include &lt;boost/asio.hpp&gt;using boost::asio::ip::tc...

2018-04-12 21:33:43 2543

原创 linux boost thread

linux centos  安装boost的方法,    1  yum install boost    2  yum install boost-devel    3  yum install boost-doc安装成功。#include &lt;iostream&gt;#include &lt;boost/thread/thread.hpp&gt;using namespace std;usi...

2018-04-05 18:06:42 519

转载 分布式高并发服务--幂等性

重复消息是SOA服务实现中非常常见的问题,你永远不要指望调用方每次请求消息不一样,对于读操作,重复消息可能无害,可对于写操作很可能就是灾难。可以通过幂等(Idempotent)模式处理重复的消息,基本处理思路是:1、调用者给消息一个唯一请求ID标识。ID标识一个工作单元,这个工作单元只应执行一次,工作单元ID可以是Schema的一部分,也可以是一个定制的SOAP Header,服务的Contrac...

2018-03-08 21:43:42 1613

原创 C++计算数组大小、数组拷贝

2018-01-10 10:57:40 3307

原创 C++ map和hash_map简单对比

C++ map 和 hash_map 对比map的基本数据结构是平衡二叉树,hash_map的基础数据结构是hash_table哈希表,下面程序展示了向map和hash_map中插入数据消耗时间对比。数据量较小的时候可以选择map,数据量大、对插入查找效率要求高的时候选择hash_map。/**********************************************

2017-12-21 17:29:07 4443 2

原创 二进制转化为16进制字符串

void BibaryToHex(const unsigned char * src, char *dst, int len){int i = 0, j = 0;unsigned char left = 0x0f;unsigned char right = 0xf0;unsigned char tmp = 0;for (i =0; i{tmp = (src[i] &

2017-08-11 16:13:19 811

原创 Linux C++ 无锁编程 cas

(先保存,以后再整理)高并发服务器经常用到多线程编程,需要对共享数据进行操作,为了保护数据的正确性,有一种有效的方法就是加锁pthread_mutex_t。但是加锁会引起性能的下降,多个线程竞争同一个锁,抢占失败后强制上下文切换。/*************************************************************************

2017-07-01 19:11:02 4431

原创 一个不错的技术文章网站

https://www.ibm.com/developerworks/cn/

2017-06-30 16:36:30 528

转载 MySQL自动重新连接

MySQL连接超时。如果使用了长连接而长期没有对数据库进行任何操作,那么在 timeout值后,mysql server就会关闭此连接,而客户端在执行查询的时候就会得到一个类似于“MySQL server has gone away“这样的错误。解决方法有两个:1) 增大/etc/my.cnf中wait_timeout的值,比如设置wait_timeout=8640000,即100天。这个

2017-05-12 15:42:07 3888

原创 C++ STL set map 学习

由于工作需要,有一批数据,数据包含类型和工资两种属性。需求是找到某个类型的数据,并且是有序的。因此想到了map >。直接上代码:#include #include #include using namespace std;struct StruSalaryInfo{int salary;StruSalaryInfo(){salary =

2017-04-19 00:07:02 244

转载 mysql 远程权限分配

Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作:一、允许root用户在任何地方进行远程登录,并具有所有库任何操作权限,具体操作如下:在本机先使用root用户登录mysql: mysql -u root -p"youpassword" 进行授权操作:mysql>GRANT A

2017-03-07 01:01:43 342

原创 C++ 字符串分割 split

C++ 字符串分割 split

2017-02-20 23:52:24 1632

原创 Linux查看一个进程内线程详情

Linux 查看一个进程中线程的状态方法一:PS在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为的进程创建的所有线程。1.$ ps -T -p 方法二: Top1.$ top -H2.要让top输出某个特定进程并检查该进程内运行的线程状况:$ top -H -p

2016-12-16 11:26:50 5008

转载 mysql强制索引和禁止某个索引

1、mysql强制使用索引:force index(索引名或者主键PRI)例如:select * from table force index(PRI) limit 2;(强制使用主键)select * from table force index(ziduan1_index) limit 2;(强制使用索引"ziduan1_index")select * from table f

2016-11-17 02:08:33 899

原创 C rand 和 srand 函数

rand函数不是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用 rand()会导致相同的随机数序列被生成。srand((unsigned)time(NULL))则使用系统定时/计数器的值作为随机种子。每个种子对应一组根据算法预先生成的随机数

2016-10-29 22:59:20 355

原创 Linux C++ 时间格式化

/*************************************************************************    > File Name: time.cpp    > Author: chenhui    > Mail: *********    > Created Time: 2016年03月10日 11:20:58 ********

2016-10-17 15:47:16 2059

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除