学习博客

一个、Linux多线程编程技术高效开发

参考博文:http://www.ibm.com/developerworks/cn/linux/l-cn-mthreadps/

几个环境:

1、递归锁

2、自己主动复位条件变量

3、pthread_cond_wait运行前加锁,运行时会解锁。成功后会加锁。运行之后解锁

4、pthread_join堵塞当前线程,知道指定线程结束

二、trie树

參考博文:http://blog.csdn.net/hguisu/article/details/8131559

trie的优势:

假设给1w单词,找出一个单词是否在这1w之中

利用hash和trie都能够轻松做到

可是假设问一个前缀是否在这1w单词中出现

显然利用字符树会更好

三、红黑树

參考博文:http://blog.csdn.net/ts173383201/article/details/7866387

红黑树的实际处理:

在实际处理过程中,往往将最底层的孩子结点和根结点的父亲都指向同一个 NIL 结点,以便于处理红黑树代码中的边界条件

5条性质:

性质1. 结点是红色或黑色。

性质2. 根是黑色。

性质3 每一个叶结点是黑色的。

性质4 每一个红色结点的两个子结点都是黑色。

(从每一个叶子到根的全部路径上不能有两个连续的红色结点)

性质5. 从任一结点到其每一个叶子的全部路径都包括同样数目的黑色结点。

须要旋转的3种情况:

Case1 : z的叔叔y是红色的

Case2:z的叔叔y是黑色。并且z是右孩子

Case3:z的叔叔y是黑色,并且z是左孩子

四、考量hash的两个指标:单调性和平衡性

參考博文:http://blog.csdn.net/sparkliang/article/details/5279393

考量hash的一个指标:单调性:

单调性是指假设已经有一些内容通过哈希分派到了对应的缓冲中。又有新的缓冲增加到系统中。哈希的结果应可以保证原有已分配的内容可以被映射到新的缓冲中去,而不会被映射到旧的缓冲集合中的其它缓冲区。

一致性hash:

将hash表想象成环形

将对象和cache都映射到hash中

对象沿着环形hash的顺时针进行移动。遇到一个cache就将对象存储到cache中

考量hash的还有一个指标:平衡性:

平衡性是指哈希的结果可以尽可能分布到全部的缓冲中去,这样可以使得全部的缓冲空间都得到利用。

虚拟节点:

“虚拟节点”( virtual node )是实际节点在 hash 空间的复制品( replica )。一实际个节点相应了若干个“虚拟节点”,这个相应个数也成为“复制个数”。“虚拟节点”在 hash 空间中以 hash 值排列。

cache A1, cache A2 代表了 cache A ; cache C1, cache C2 代表了 cache C

objec1->cache A2 。 objec2->cache A1 ; objec3->cache C1 。 objec4->cache C2 ;

五、可运行程序的内存分布

參考博文:http://blog.csdn.net/hmsuccess/article/details/2808109

首先是堆栈区(stack),堆栈是由编译器自己主动分配释放 。存放函数的參数值,局部变量的值等。其操作方式类似于数据结构中的栈。

栈的申请是由系统自己主动分配,如在函数内部申请一个局部变量 int h,同一时候判别所申请空间是否小于栈的剩余空间。如若小于的话,在堆栈中为其开辟空间,为程序提供内存。否则将报异常提示栈溢出。

其次是堆(heap),堆一般由程序猿分配释放, 若程序猿不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。堆的申请是由程序猿自己来操作的,在C中使用malloc函数,而C++中使用new运算符,可是堆的申请过程比較复杂:当系统收到程序的申请时。会遍历记录空暇内存地址的链表。以求寻找第一个空间大于所申请空间的堆结点,然后将该结点从空暇结点链表中删除,并将该结点的空间分配给程序,此处应该注意的是有些情况下。新申请的内存块的首地址记录本次分配的内存块大小,这样在delete尤其是delete[]时就能正确的释放内存空间。

接着是全局数据区(静态区) (static),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的还有一块区域。

另外文字常量区。常量字符串就是放在这里,程序结束后有系统释放。

最后是程序代码区。放着函数体的二进制代码。

六、远堆与近堆

參考博文:http://hi.baidu.com/yangyangye2008/item/673bfa5bec973c16db163539

对于16位的cpu

若申请空间大于64K,那么将让段地址偏移,则会改变原来的堆地址,称为远堆

假设小于64K,仅仅须要在偏移地址中分配,则为近堆

如今cpu32位

基本不分近堆远堆

七、13年华为面试笔试题

參考博文:http://blog.csdn.net/ts173383201/article/details/7920048

个人评价:标题简单的基础。只有网络覆盖广泛议题,不太可能

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-08-27 14:03:15

学习博客的相关文章

学习博客 启动日记

今天,1月27日,应该是我值得纪念的一个日子,我决定真正开始学习android开发并坚决要做出成绩的日子. 以前,自己总是犹豫不决,停留在想,未必真的去做.这次,我决定我要放手一搏.为了以后的幸福,为了支持我,懂我的人,为了那些一直陪伴我的人我觉得我应该放手一搏. 我现在一直在跟着极客出的安卓开发教学视频,我打算以两套视频为基础,吃透一部,另一部作为补充.这样,我希望自己能够在很短的时间内掌握安卓开发的能力. 说到做学习博客,我还是一直没有底的,因为毕竟自己是新手,很多地方都不懂.会不会误导大家

JAVA学习博客---2015-8

八月份的学习博客,今天已经是九月四号了,补上吧.现在我又回到C++了,JAVA的基本的东西都懂了,但是更好的掌握JAVA,我必须原路返回去学习C++,当初为了更快的学JAVA,其实我得C++都是跳着看过的,OMG,出来混迟早都是要还的,所以注定我还是要和C++呆上一段时间,希望在十二月之前能够完全掌握C++.好了,接下来老生常谈,八月份的成果. 其实相比之前几个月,这个月的进度是最慢的了,JAVA NOTE做到了第三章我就回来看C++了,同样是OOP,但是更熟练的操作,许多东西还是C++说的更明

JAVA学习博客---2015.5

上一次的学习博客写的和流水账差不多,有点生硬的和背目录一样,所以既然学习的目的是程序,那么这个月的学习博客就用程序来说点东西吧.这个月看了一些C和JAVA的视频,开始看别人写的程序,能看的懂但是自己去写的话前后逻辑还有方法类的使用不是很清楚.好吧,先去膜拜大神,一步一步来吧. 先来说一个C的程序.这个程序是把一个十进制的数字转成二进制的编码,十进制当中是逢十进一,二进制逢二进一,无论是什么样的语言写的任何程序,在计算机里面的记录方法均为二进制. #include<iostream> using

java JDK8 学习笔记——助教学习博客汇总

java JDK8 学习笔记——助教学习博客汇总 1-6章 (by肖昱) Java学习笔记第一章——Java平台概论 Java学习笔记第二章——从JDK到IDEJava学习笔记第三章——基础语法Java学习笔记第四章——认识对象 Java学习笔记第五章——对象封装 Java学习笔记第六章——继承与多态 7-10.12.14章 (by吴子怡) Java学习笔记JDK8>学习总结 11.13.15-18章 (by宋宸宁) 第11章 第13章第15章第16章第17章第18章

JAVA学习博客----2015.4

这是开始写的第一篇学习博客,记录一下每个月的学习进度和掌握程度,因为这是第一次写学习博客而且已经看编程方面的书已经有几个月了,所以这一篇学习博客可能看似有些乱或者篇幅太长.从十二月的<程序员教程>到现在的<JAVA核心技术卷一基础知识>,关于编程的书在看的目前是四本(<程序员编程><C Primer Plus><C++ Primer Plus><JAVA核心技术>卷一),目前在办公室看的是JAVA核心技术,在家看的目前是C++,学习进

值得关注的10个Python语言学习博客

大家好,还记得我当时学习python的时候,我一直努力地寻找关于python的博客,但我发现它们的数量很少.这也是我建立这个博客的原因,向大家分享我自己学到的新知识.今天我向大家推荐10个值得我们关注的python博客,这些博客的博主都会定期的更新而且他们的文章都很不错.下面是博客列表: 1.首先第一个肯定是毋庸置疑的Planet Python这是最出名的python博客其中之一,快去看看,我希望你能找到对你有用的东西,昨天它还更新了呢. 2.第二个博客是lucumr,博主是flask的创始人(

Cocos2d 学习博客

1. 书籍学习 (1)<cocos2dx游戏开发之旅 > (2)<cocos2d-x权威指南> (3)<Cocos2d-x高级开发教程:制作自己的<捕鱼达人>> (4)C++ <C++ Primer(中文版)(第5版)> 我现在主要看的<cocos2dx游戏开发之旅 >,觉得木头幽默.诙谐,个人比较喜欢.本书的cocos2dx的版本是2.1.1 .另外木头正在准备3.x 的书.不着急的学习的可以等待3.0的书,毕竟3.0和2.1.1改

iOS开发学习博客

不断学习的博客 王巍的博客:王巍目前在日本横滨任职于LINE.工作内容主要进行Unity3D开发,8小时之外经常进行iOS/Mac开发.他的陈列柜中已有多款应用,其中番茄工作法工具非常棒.http://onevcat.com池建强的博客: 池建强,70后程序员,Blogger.98年毕业,先后就职于洪恩软件.RocketSofeware和用友软件工程公司(后更名为瑞友科技),现任瑞友科技IT应用研究院副院长.该博客最初每天发送一条Mac技巧,不过目前已经形成了一种技术和人文结合的风格,时而随笔,

ASP.NET MVC学习博客汇总

发表于3年前(2012-03-09 12:45)   阅读(89) | 评论(0) 1人收藏此文章, 我要收藏 赞0 最近关注ASP.NET MVC,汇总一下优秀的ASP.NET MVC博客,欢迎大家能帮忙补充. 1.Scott Guthrie:http://weblogs.asp.net/scottgu/ 2.Scott Hanselman:http://www.hanselman.com/blog/ 3.Rob Conery:http://blog.wekeroad.com/ 4.Phil