- 博客(12)
- 收藏
- 关注
原创 代码案例:C++线程中使用回调函数(普通函数)
回调函数为普通函数,但在函数体内执行成员函数class MyClass{ pthread_t TID; public: void func() { //子线程执行代码 } bool startThread() { //启动子线程 int ret = pthread_create(&TID, NULL, callback, this); if(ret != 0) return false; else return tru
2020-07-05 16:15:53 3785
原创 学习笔记:C语言用回调函数实现C++的多态
C++追求的多态,就是可扩展性任务的调用者与任务的实现者进行解耦,这个思想非常重要。int myadd(int a,int b){ return a+b;}int myadd1(int a,int b){ return a + b +1;}int myadd2(int a,int b){ return a + b + 2;}//我...
2020-02-11 15:02:26 408
原创 学习笔记:超时和重试机制设置
一旦用户请求超过某个时间的得不到响应,就会抛出异常。这个是非常重要的,很多线上系统故障都是因为没有进行超时设置或者超时设置的方式不对导致的,我们在读取第三方服务的时候,尤其适合设置超时和重试机制,一般我们使用一些PRC框架的时候,这些框架都自带的超时重试的配置。如果不进行超时设置可能会到时请求影响速度慢,甚至导致请求堆积进而让系统无法在处理请求。重试次数一般设为三次,在多次的重试没有好处,反而加重...
2020-02-10 21:27:56 393
原创 实战笔记:多线程同步问题
假如需要100个线程,按照时钟,做同质化同步处理:1.在一个线程使用时钟,定义全局变量1000为条件变量,进行线程唤醒;这是精度比较低的时候,上100毫秒,比如心跳包;2.当精度很高的时候,需要信号量,让代码执行几乎在同一个位置开始,涉及微妙级别。...
2020-01-20 09:27:23 192
原创 优秀程序员的四种能力
优秀程序员必须具备四项核心能力:抽象问题、修改模型、写出健壮性、可扩展性的代码。所以为什么面试中大厂喜欢靠算法,主要想详情地了解你是否具备解决此算法背后的思想,即抽象问题的能力,面试官还喜欢对相应算法题进行各种变形,其实也是为了考察你是否具有修改模型的能力(比如一个翻转链表,可以引申出顺序每个K一组翻转,逆序没k个一组翻转),所以为了同时具备这两项能力,我们需要提前掌握大量的理论知识,做大...
2020-01-18 21:46:06 245
原创 报文内容填充
/*解决UDP报文格式问题*/struct bs{ unsigned a:1; unsigned b:3; unsigned c:4;}bit, *pbit;bit.a = 1;bit.b = 7; //注意位域的赋值不能超过该域所能表示的最大值,如b只有3位,能表示的最大数为7,若赋值为8,就会出错// 7 的二进制 0111 最大值为7bit...
2020-01-18 17:30:06 303
原创 UDP并发方案
UDP服务器是顺序迭代的,服务器等待客户端请求,然后读取请求,处理请求,发回响应。并发常见思路是使用多线程,服务器在读取一个新请求之后,可以交由一个线程处理,该线程在处理之后直接将相应内容发给客户端另一当面,UDP服务器和多个客户端交互,但是却没有多个socket,典型的解决方案是,服务器为每个客户端创建了一个新的socket,并绑定一个新的端口,客户端有就通过这个新的sock...
2020-01-18 17:26:34 586
原创 DB2日志文件
在DB2中,该机制使用日志功能实现。所谓日志,可以被认为在一条事务被落实之前,能够保证其记录被写入永久存储系统的一种方法。那么为什么需要日志呢?直接把变化的数据写入磁盘不是更好?之所以需要日志,主要是从性能考虑。通常情况下,每一个事务包含若干条数据更改语句,每个更改可能需要操作大量的数据。如果将这些数据直接写入磁盘才返回给应用端,那么将严重影响写的性能,因此,DB2采用写日志优先算法,即先写日...
2019-10-13 15:26:02 563 1
翻译 C++笔试题之String类的实现
这个在面试或笔试的时候常问到或考到。已知类String的原型为:class String{public: String(const char *str = NULL);// 普通构造函数 String(const String &other);// 拷贝构造函数 ~String(void);// 析构函数 String ...
2019-06-09 09:28:06 243
原创 C语言-字符串处理-识别一个字符串的子字符串-然后截取这个字符串的后面一段
我怎么从一个很长很长的字符串中,识别到某个字符串之后,开始从这个字符串截取到这个原字符串的最后一位?这个问题是我同事问我的,当时我一脸懵逼,然后想到一个数组,然后对比查找,再然后获取位置,然后直接指针相减。开发遇到的小问题。记录下来,便于自己思维总结。后面想起前面的数据库开发,只想喊一句我特么草!!!用sscanf()函数给定一个字符串““hello, world...
2018-05-27 11:17:09 12213
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人