2014年8月24日
摘要: 读写锁 有读优先,写优先。读优先: 即同时有多个读写线程在等待一个条件时,先处理读,后处理写。 实现:写进程获得写锁时,先判断读的引用计数,若0,则继续判断是否有其他线程已获得写权限,若有则循环等待阻塞等待至无,然后继续判断读的引用计数然后继续判断写权限,直至无,然后才对写加锁 ... 阅读全文
posted @ 2014-08-24 16:45 chagmf 阅读(179) 评论(0) 推荐(0) 编辑
2014年8月3日
摘要: AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(logn)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者G.M. Adelson-Velsky和E.M. L... 阅读全文
posted @ 2014-08-03 21:26 chagmf 阅读(1938) 评论(0) 推荐(0) 编辑
2014年7月17日
摘要: http://www.doyourself.com.cn一,题目: 如何在1MB的空间里面对一千万个整数进行排序?并且每个数都小于1千万。实际上这个需要1.25MB的内存空间(这里所说的空间是考虑用位图表示法时,每一位代表一个数,则1千万/(1024*1024*8)约为1.25MB )。 1... 阅读全文
posted @ 2014-07-17 17:06 chagmf 阅读(134) 评论(0) 推荐(0) 编辑
2014年6月25日
摘要: 1. 定义变量名和函数名或关键字重名: typeerror 在网上随便copy了一个处理csv文件的源码,运行中总是在input时出错,差错没注意变量声明,导致浪费不少时间在红色剪头处,input的输出用input变量名存放,当再次调用input函数时,就会提示:TypeError: str obj... 阅读全文
posted @ 2014-06-25 09:42 chagmf 阅读(283) 评论(0) 推荐(0) 编辑
2014年6月24日
摘要: photoshop中的解释:阈值”命令将灰度或彩色图像转换为高对比度的黑白图像。可以指定某个色阶作为阈值。所有比阈值亮的像素转换为白色;而所有比阈值暗的像素转换为黑色。“阈值”命令对确定图像的最亮和最暗区域很有用。 如果图像的像素等于阀值时怎么处理呢? 如果是普通图片,怎么处理都不怎么影响,... 阅读全文
posted @ 2014-06-24 12:57 chagmf 阅读(1505) 评论(0) 推荐(0) 编辑
2014年6月20日
摘要: 这两天做了打印机的上位机驱动,要生成DLL,了解了这方面的东东,记录下简单。因为要在wince平台上使用,接口不能用MFC类,所以费劲的转换成了非MFC,也就使用Non-MFC DllsDLL的生成:*.h#ifndef __PRINTERCONTROL_H__#define __PRINTERCO... 阅读全文
posted @ 2014-06-20 16:29 chagmf 阅读(242) 评论(0) 推荐(0) 编辑
2014年6月16日
摘要: 一 、目标文件格式 1. PE(Portabel Executable) 2. ELF (Executable Linkable Format) : 可重定位、可执行、共享目标文件、核心转储文件思考: 弱符号和弱引用 VS 回调函数 __attrbute__ ((weakref)) voi... 阅读全文
posted @ 2014-06-16 23:54 chagmf 阅读(130) 评论(0) 推荐(0) 编辑
2014年6月8日
摘要: 自己之前一直以为目标文件是经过汇编生成.s之后编译生成的,好菜。 源程序到可执行程序过程:预处理 编译 汇编 链接预处理: 展开宏定义,处理条件预编译指令,插入头文件,删除注释,添加行号和文件名标示,保留#pragma编译器指令.编译: 词法分析:词法扫描器按照词法规则产生记号,根据记号放... 阅读全文
posted @ 2014-06-08 21:52 chagmf 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 题前:30--45天读完,一周至少3篇读书笔记。不能坚持,不再联系,不再找你。一. hello world 程序引出的问题,看40天后,再回来看看自己的答案,提升多少。 Q1:程序为什么要被编译器编译之后才可以运行? A1 : 系统执行的机器语言,即二进制文件,程序是文本文件需要编译之后,由链... 阅读全文
posted @ 2014-06-08 00:01 chagmf 阅读(176) 评论(0) 推荐(0) 编辑
2014年6月4日
摘要: 1. 复合字面值char *get_status_str(int status){ return (char *[]){"linkdown","partial-linkup","full-linkup","N/A"}[status];} 2. 常量折叠#include int main() { ... 阅读全文
posted @ 2014-06-04 17:58 chagmf 阅读(128) 评论(0) 推荐(0) 编辑