`
jfwang213
  • 浏览: 10351 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表

技术名词积累

advisory lock. 建议锁,如果你在每次访问临界区的时候,都在获得锁的情况下,那么这个锁就能正常工作,提供互斥的动能。但是它并不能阻止不获得锁就直接访问临界区的“流氓”。
现在的选秀节目非常多,就我经常看的就有非诚勿扰,非你莫属,一站到底,当然还有中国好声音。总的说来,这些都很火。现在的人都喜欢有个性的有争议的事物,所以选秀节目越来越火。   在这些节目中,中国好声音的吸引力要远远大于其他节目。这个可以从微博上看出来,每次中国好声音播出前后,微博上都会有一个热门话题与之相关,而且参与的用户都非常多,这无疑已经引起了非常大的影响力。再一个可以从中国好声音的广告费中得到这个结论。今年好声音第一季十期节目的广告费和版权销售一共赚到了3亿,一亿的投入,得到了四个月三倍的收入,这也是个神奇的成绩。   那么它为什么这么火呢? 1.有明星参与。 就和互联网产品一样 ...
placement new 为了稳定和简单,负责在线应用的程序很少使用动态内存,所以很多基本库都是基于静态内存。 比如一个hash的接口是void *GetObjectByKey(uint32_t dwKey); GetObjectByKey调用后返回了一段内存。如果你想在这段内存上放置一个类,那怎么办呢? class A { public: .... private: ... };  一种办法是: A *pA = GetObjectByKey(dwKey);  这种办法的问题是,没有调用A的构造函数,这是非常危险的,因为pA的对象并没有初始化。 ...
今天有时间对alignment重新学习了一下,发现自己之前对alignment的理解是片面的。   alignment理解   alignment的含义可以分为两部分:   1.数据对齐,即这个对象的地址是多少的倍数。   int *p = (int *)malloc(sizeof(int));  在32位机种这段代码中p的值就为8的倍数,因为malloc返回的值需要满足系统中所有的基本数据类型的对齐要求。   2.结构的数据填充。   typedef struct { char c; short sh; int word; }  在默认alignment ...
1.Page和Block SSD的硬盘有page和block的概念。Page大小为4K,Block大小为512K(即128个Block)。 2.写放大 从前一直认为SSD的写放大(Write amplification)是指SSD一次写必须写一个Block,其实不是这样的。SSD一次写的单位是page,但是SSD的Write只能写到空的page上,对于之前写过的page,必须先进行一次Erase。而Erase的单位是Block,所以如果一个page的数据删掉之后,要想再写到这个page上,必须经过以下三步: 1.将在同一个Block的其他page读出来。 2.将整个Block Er ...
今天听了吴军老师的演讲,怎样不山寨,感触很深。记录下来时刻提醒自己。 1.判断山寨的标准 是不是只要是抄袭别人的都是山寨呢?当然不是,苹果是第一个出智能机的吗?不是,但是我们没有人说苹果是山寨吧。牛顿说过我们站在了巨人的肩膀之上我们才会成功。所以我们要借鉴和学习别人的,但是我们要有我们的创新点,有我们的努力,我们才能做到不山寨。 2.怎样才能不山寨 这个演讲是为讲授他的数学之美而做的。数学之美中讲的是模型,方法。所以吴老师认为要想不山寨必须有正确的模型和方法才可以。正确的模型应该是能随着不断的改进而产生越来越好的结果。 其中,他拿搜搜做为例子,来讲解模型的正确性。正确的模型帮助搜搜找到 ...
最近在做项目时,遇到了一个问题,现在没有非常好的落地数据的key-value的库。下面就总结一下现有的实现方式,结合使用过程中发现的问题,最后找到一个简单的实现自用的库的方法。   首先总结一下现有的实现方式   1.在mysql上层封装一层接口,将mysql变成一个落地数据的key-value库,然后加上memcache。 这种方式比较适合域读多写少的地方,因为mysql的写性能比较差。读的时候多数会命中memcache所以性能比较好。 针对写性能差的缺点,mysql也有自己的解决方法:读写分离加上主从同步。 建立多个mysql节点,一个节点设置为master,然后其他节点设置为 ...
Global site tag (gtag.js) - Google Analytics