摘要: HANDLE WINAPI GetCurrentProcess(void);1、返回当前进程的伪句柄(始终返回-1)2、-1表示当前进程的伪句柄3、-2表示当前线程的伪句柄,可以用GetCurrentThread试一试(始终返回-2)4、不要直接使用-1这个值,为了将来的兼容性请使用GetCurre 阅读全文
posted @ 2020-04-14 14:44 caopf 阅读(571) 评论(0) 推荐(0) 编辑
摘要: 1. 一个线程一个完成端口,sock平均分配每一个完成端口,要不出现有些cpu高,有些低。平均分配使性能提升 2. 绑定工作线程和网络线程 在同一个cpu,一个进程设置1个工作线程,1个网络线程 3.map key不能作为string,用int代替,或者hashmap,setevent不要每次触发 阅读全文
posted @ 2020-03-18 18:30 caopf 阅读(102) 评论(7) 推荐(0) 编辑
摘要: 1. 斐波那契数列 递归有很多重复操作,可以通过以下方式解决 2. vector的去重操作,通过s[i++] 3. 二分查找的C版本 以后补充代码 阅读全文
posted @ 2020-03-08 21:41 caopf 阅读(268) 评论(2) 推荐(0) 编辑
摘要: 1. 由于配置文件错误,导致程序走向异常流程 2. 异常流程又触发了一个内存问题,问题是,释放了内存,很快又去读取,这时候内存实际并没有回收 3.等系统回收的时候,崩溃在别处申请内存的地方 思考: 1. 找到错误代码的时候,再上下文多看下,离成功就很近了 2. 内存释放完并不是立即回收,详细有待再查 阅读全文
posted @ 2020-01-06 18:10 caopf 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 1. map锁只能保护map,对map里的指针对象不能保护到2. 出了map锁,要用引用计数保证map里的对象的安全3. insert的时候,引用计数加1,erase的时候减14. find完之后,没有erase操作,需要赋值对象,加1,使用完减1,这些都在map锁里操作,既能保证对象再使用当中不会 阅读全文
posted @ 2019-06-19 21:20 caopf 阅读(350) 评论(2) 推荐(0) 编辑
摘要: 暂定 阅读全文
posted @ 2019-03-08 10:30 caopf 阅读(293) 评论(1) 推荐(0) 编辑
摘要: 更多时候,发现一个复杂的漏洞需要是只是耐心。 概念,不是一个神圣的东西,概念很多时候只是bullshit。很多概念的产生是因为需要认识和概括某种存在着的现象而不得已产生的,概念也许是必须的但并不是必然如此的。 换句话说,概念仅可以被看做是一种努力尝试描述后的结果之一。或者也可以说概念是提出这个概念的 阅读全文
posted @ 2018-12-31 22:39 caopf 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 这两天碰到一个问题,epoll注册事件,没有回掉,而用tcpdump查看确实有流量产生 最后问题定位在,port没有htons上, 最主要还是平常没有注意这个问题 还有tcpdump对于udp,即使服务端没有bind,客户端再发数据,依然能抓取的到 其他的,inet_addr,是转换成网络字节序的 阅读全文
posted @ 2018-09-07 15:57 caopf 阅读(150) 评论(0) 推荐(0) 编辑
摘要: #include <pthread.h> #include <unistd.h> static pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER; static pthread_cond_t cond = PTHREAD_COND_INITIALIZER 阅读全文
posted @ 2018-08-20 21:17 caopf 阅读(82) 评论(5) 推荐(0) 编辑
摘要: 多线程下载和存储,既要保证并行,又要保证数据的顺序 下载的时候,通过计算,指定每个线程需要下载的范围。 存储的时候,通过计算,指定每个存储线程要存储的起始位置和大小 可以一个下载线程对应一个存储线程,使用一个内存池或者ring_buffer 下载线程和存储线程之间,可以使用条件变量 阅读全文
posted @ 2018-08-02 11:04 caopf 阅读(115) 评论(0) 推荐(0) 编辑