摘要: 在讨论之前,先对一些本文可能涉及到的与链接器符号解析相关的基础知识作简要介绍。请注意,这些论述都是针对 gcc (C语言)而言的。 1. 编译器会导出每个编译单元中的全局符号(即全局链接器符号; 全局变量、全局函数具有全局链接器符号,可被其他编译单元访问,具有外部链接属性),这些符号在链接阶段完成解 阅读全文
posted @ 2016-03-11 02:05 william-cheung 阅读(1297) 评论(0) 推荐(0) 编辑
摘要: 此为某国外大公司系统设计面试题目 :) 阅读全文
posted @ 2016-01-12 14:23 william-cheung 阅读(403) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1780 相关概念和算法参考: https://www.math.ku.edu/~jmartin/courses/math105-F11/Lectures/chapter5-part2.pdf http://web.info.uvt.ro/~idr 阅读全文
posted @ 2015-09-27 23:12 william-cheung 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 函数内部的静态局部变量的初始化是在函数第一次调用时执行; 在之后的调用中不会对其初始化。 在多线程环境下,仍能够保证静态局部变量被安全地初始化,并只初始化一次。下面通过代码来分析一些具体的细节: 通过观察 gcc 4.8.3 为上述代码生成的汇编代码, 我们可以看到编译器生成了具有如下语义的代码: 阅读全文
posted @ 2015-09-23 02:20 william-cheung 阅读(8130) 评论(0) 推荐(1) 编辑
摘要: memcached 线程模型如下图所示memcached 线程可分为两种,一是负责基本事件处理(如启动时间更新,连接请求等)和内存管理等的线程, 二是负责网络读写请求处理的线程即 worker threads 。这里只对 worker threads 进行讨论。在分析之前,先看一下相关的数据结构和变... 阅读全文
posted @ 2015-09-13 18:01 william-cheung 阅读(839) 评论(0) 推荐(0) 编辑
摘要: 1. libevent 在 memcached 中 libevent 被用来处理网络事件(连接请求,读和写) 或者被用来实现定时器。使用 libevent 需要包含头文件 event.h, 并且在 GCC 链接时需要使用选项 -levent 相关函数的函数原型:/* before usin... 阅读全文
posted @ 2015-09-11 17:34 william-cheung 阅读(1272) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3258#include #include using namespace std;#define N 50002int L, n, m;int rock[N];int solve() { // rock[i] is the dist... 阅读全文
posted @ 2015-09-03 21:06 william-cheung 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 在某公司使用的框架源代码里看到了 Prototype 模式, 这里把代码提炼总结一下:// --------------------------------------------------------------------------------------/** Abstract.h **/... 阅读全文
posted @ 2015-08-28 19:19 william-cheung 阅读(293) 评论(0) 推荐(0) 编辑
摘要: offsetof 和 container_of 是两个常见的与结构或类相关的宏,其定义有一定的技巧性,这里总结一下。1. offsetofoffsetof 是定义在头文件 stddef.h (cstddef in C++) 中的一个宏, 用于计算结构体(struct)或联合体(union) 成员的地... 阅读全文
posted @ 2015-08-19 01:03 william-cheung 阅读(1673) 评论(0) 推荐(0) 编辑
摘要: 这里主要通过一些位运算的技巧来找出一个整数的二进制表示中1的个数或其中某些特殊的1的位置。1 的个数求二进制表示中1的个数存在时间复杂度为O(n)(n为1的个数)的算法。 其要点是 若整数 x 不为0, 表达式(指C语言表达式) x&(x-1) 的运算结果是将 x 的二进制表示中最右侧的1消除后的值... 阅读全文
posted @ 2015-07-12 22:25 william-cheung 阅读(568) 评论(0) 推荐(0) 编辑