摘要:
一个CMakeLists.txt 里生成两个目标,怎么为每个目标设置不同的预定义? 使用set_target_properties,(target ROPERTIES COMPILE_DEFINITIONS ...) 使用cmake生成Makefile后执行make时怎么输出详细的编译命令? 在CM 阅读全文
摘要:
运算重载符不可以改变语法结构、不可以改变操作数的个数、不可以改变优先级、不可以改变结合性。 自定义类Object,重载运算符: 逻辑运算符 位运算符 关系运算符 成员运算符 阅读全文
摘要:
锁类型 相关函数原型: int pthread_mutexattr_settype (pthread_mutexattr_t *attr, int kind); int pthread_mutexattr_gettype (const pthread_mutexattr_t *attr, int * 阅读全文
摘要:
当一次业务处理计算服务和数据库交互较多时,将可能有大量时间浪费在数据传输上,尤其对于计算服务和数据库跨机房或跨地区部署时,浪费的时间会极其可观。为了减少时间浪费可以使用MySQL提供的SQL打包功能。 先来认识两个标记:CLIENT_MULTI_RESULTS:Tell the server tha 阅读全文
摘要:
如上图所示场景,服务A通过网络访问服务B,同时两服务分别写数据到DB A、DB B。这样在特殊情况比如网络、机器、数据库等异常下可能导致DB A、DB B之间产生不一致的情况,如下: 第一种情况,DB A成功落库数据后,但是访问服务B失败或服务B写数据失败。就像一笔跨行转账,这边扣了钱,对方却没收到 阅读全文
摘要:
Redis 的事件分类 Redis支持4种I/O模型:evport、epoll、kqueue、select,通过宏定义决定使用某一个 1 配置加载 config.c : void loadServerConfig(char *filename, char *options) 加载配置文件端口 加载配 阅读全文
摘要:
什么时候需要重启呢? 版本升级 特殊情况如配置加载的重启 重启时有什么要求? 已接受的请求不能中断 新来的请求要及时响应 因此就需要服务端支持平滑重启的特点,现在设计两种平滑重启的方案:主动式、被动式 被动式平滑重启 特点:新进程是旧进程的子进程,默认继承老进程的所有环境变量 主动式平滑重启 特点: 阅读全文
摘要:
现在有3个模块:main、service、base,main依赖service的service.h、service依赖base的base.h,怎么写CMakeList.txt避免main直接耦合base - main - service - base base模块 - base.h - base.c 阅读全文
摘要:
出口就是函数退出的地方,一个return也算是一个出口。如果一个函数有多个出口可能扰乱读者的思考 这是一个出口,再看个两个出口的 看起来似乎还好,没影响到阅读。再看个复杂点的 这段代码是从实际项目里摘出来简化后的,虽然是简化的,但是看起来依然不太友好,如果后续要修改的话,非常有可能忽略事物的处理,比 阅读全文
摘要:
SESSION 1 SESSION 2 SESSION 3 START TRANSACTION START TRANSACTION START TRANSACTION INSERT INSERT INSERT ROLLBACK Deadlock 解决方案:无解决方案 SESSION 1 SESSIO 阅读全文