- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 centos7升级gcc到7.3.0
/contrib/download_prerequisites会下载对应的依赖包,如果下载不了的话,则需要把脚本里的地址修改一下。make后面有个-j8参数,这个是指定编译时并发的数量,这个值最好设定为你机器的核数的倍数.5、测试当前gcc版本并查看安装位置。会自动重新下载对应的依赖包。
2024-07-03 23:04:42
772
原创 Win10下UE4打开失败问题分析:QQ拼音和UE4冲突
**问题:**最近更换了电脑,系统是win10,然后在使用UE4的时候发现无论怎么样都没办法启动UE4,启动界面一直到95%的时候突然间程序就没了,没有任何的提示。查看UE4的日志也没有发现任何错误信息,多次尝试,重启电脑也不起作用。解决思路:进程突然间不见了,那应该是进程崩溃了原本一直在做linux下的开发,进程崩溃的话一般会有core文件,想到在Windows下应该也有类似的机制。查了...
2019-09-19 18:07:55
2276
1
原创 PhxPaxos之Master功能的使用
PhxPaxos是腾讯公司微信后台团队自主研发的一套基于Paxos协议的多机状态拷贝类库。它以库函数的方式嵌入到开发者的代码当中, 使得一些单机状态服务可以扩展到多机器,从而获得强一致性的多副本以及自动容灾的特性。该库的源代码请参考: https://github.com/Tencent/phxpaxos本文不会对PhxPaxos库的具体实现进行详细的讲解,只是简单地介绍了该库中的master...
2018-12-16 20:45:39
636
原创 分布式系统服务单点问题的探讨
分布式系统服务单点问题的探讨无状态服务的单点问题有状态服务的单点问题在分布式系统中,单点问题是一个比较常见的问题,对于单点问题可以分为有状态服务的单点问题和无状态服务的单点问题。无状态服务的单点问题对于无状态的服务,单点问题的解决比较简单,因为服务是无状态的,所以服务节点很容易进行平行扩展。比如,在分布式系统中,为了降低各进程通信的网络结构的复杂度,我们会增加一个代理节点,专门做消息的转发,...
2018-12-16 20:44:44
2150
原创 宏定义中的do {...} while(0)
最近在看一些C++源代码的时候发现很多的宏定义中使用了do {…} while(0)这样的语法,当时觉得很奇怪,感觉这样的语法并没有意义,后来在网上查了相关的资料才发现它的微妙之处。 假如我们有这样一个例子:#define FUNC(x) func1(x);func2(x)int main(){ int x = 0; FUNC(x);}那么在编译的预处理的过程中,编译器会对宏进
2017-02-05 17:14:21
500
原创 协程学习:协程的实现(二)
本文以云风的协程框架来讲述协程的实现,学习协程的实现有利于了解协程的工作机制。 云风协程的实现框架: https://github.com/cloudwu/coroutine/准备知识: ucontext机制 [1] ucontext机制是GNU C库提供的一组用于创建、保存、切换用户态“上下文”(context)的API。 首先要了解的是结构体ucontext_t,这个结构体的作用是用来保存
2016-10-13 15:16:41
2688
2
原创 协程学习:基本概念(一)
协程的定义 根据维基百科的描述,协程是一种程序组件,与子例程一样,但是协程更为一般和灵活,但在实践中使用没有子例程那样广泛。 https://zh.wikipedia.org/wiki/%E5%8D%8F%E7%A8%8B 其实这个概念不容易理解,可以先忽略,先看看协程到底是干什么用的。协程究竟是什么呢?有什么用呢? 协程其实可以理解为是“用户态”的多线程。在多线程的模型中,操作系统会根据某
2016-10-11 21:14:26
1443
原创 SkipList跳表的实现
关键的是要理解Node结构中使用的柔性数组。/************************************************************************* > File Name: skiplist.cpp > Author: Summer > Mail: 745189913@qq.com > Created Time: Mon
2016-08-04 19:08:53
493
原创 ELO评分算法
ELO等级分制度是由匈牙利裔美国物理学家Elo创建的一个衡量各类对弈活动选手水平的评分方法,是当今对弈水平评估的公认的权威方法。被广泛应用于国际象棋、围棋、足球等运动,以及很多网游与电子竞技产业。游戏界比较著名的应用有: WOW(魔兽世界)、DOTA、LOL。ELO计算方法 Ra:A玩家当前的积分 Rb:B玩家当前的积分 Sa:实际胜负值,胜=1,平=0.5,负=0 Ea:预期A选手的胜负值
2016-01-19 11:36:51
22172
2
原创 gdb调试core文件
在Linux下进行C/C++开发的小伙伴们应该都遇到过coredump的情况,遇到情况应该怎么处理呢?怎么定位问题所在?只要分析下core文件,那么就很容易找到程序是在哪一行出现coredump的。通常情况下,在程序出现coredump的时候,系统会把程序运行时的内存,寄存器状态,堆栈指针等信息保存到一个文件中,这个文件就是core文件。1) 如何让程序崩溃的时候产生core文件? 系统命令: u
2015-11-20 17:49:34
2007
原创 SSH自动登录脚本
#!/usr/bin/expect -fset user rootset host 192.168.0.1set password 123456spawn ssh $user@$hostexpect "*password:"send "$password\r"expect "]*"send "ls \r"interactsend:用于像进程发送字符串 expect:从进程接受字符串
2015-11-09 12:56:12
602
原创 C++虚函数的作用
简单来说,虚函数就是采用virtual修饰的函数,它的主要作用是让成员函数一般化,用基类的指针指向不同的派生类的对象时,基类指针调用其虚成员函数,则会调用其真正指向对象的成员函数,而不是基类中定义的函数。若不是虚函数,则不管基类指针指向的是哪个派生类对象,调用时都会调用基类中定义的函数。 下面通过相关的例子来说明。不是虚函数的成员函数#include <iostream>using namesp
2015-11-05 16:55:49
628
原创 Vim的基本操作
模式切换Esc 切换到普通模式<C-c> 切换到普通模式<C-[> 切换到普通模式i 进入到插入模式a 进入到插入模式(光标后移一位)A 进入到插入模式(光标移动到行尾)R 替换模式: 进入到命令模式V 可视模式 面向行v 可视模式 面向字符<C-v> 可视模式 面向块光标位置跳转*普通模式中:*gg 回到文件开头G 到文件最后一行开头a 在当前位置切换成Insert模式
2015-11-04 16:04:10
408
原创 STL map []和insert的分析
STL中的map是一个key-value的数据结构 ,每一个key对应着一个值,而且key是唯一的,底层采用红黑树的数据结构实现。在使用map的过程中,有两种方式进行数据的插入,第一种是使用下标的方式,也就是[],第二种是使用insert接口,它们主要的区别如下:下标的方式插入,如果原本key不存在则会先创建对应的记录,然后再进行赋值;insert方式插入,如果key不存在,则插入记录,如果存在
2015-10-30 11:18:10
9727
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人