![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术文章
badbad_boy
这个作者很懒,什么都没留下…
展开
-
原子操作
原子操作,atomic operation。google 了半天,答案最多的就是“一系列不可被打断的操作”,借鉴的物理里面最小的物质单位“原子”的概念。(至于还有夸克等等,不在此讨论范围之列)。 很想知道原子操能得以实现的底层原理是什么?CPU? 操作系统? 觉得和两者之间都有关系。 如果一个操作本身就可以用一条机器指令来完成,那么这个操作就应该是原子的。这是由CPU的运行原理来决原创 2009-02-24 10:18:00 · 614 阅读 · 0 评论 -
重构旧代码的一些体会
前提:重构的时候,旧的代码最好是能编译并运行的。否则重构起来就比较麻烦 1。如果是整个类的重构,最好先生成一个新的类。待新类一点点重构完毕并投入到实际系统中验证符合业务逻辑后,再整体替换。这样随后都可以看到以前程序是如何运行的。 否则重构一半发现重构的逻辑有问题,那就麻烦了。 而且,不仅仅是一个类,如果这个类还用到了其他的类型,而且需要发生变动,最好也把该用的类型copy一份。原创 2009-03-05 20:45:00 · 521 阅读 · 0 评论 -
哲学家进餐问题(dining philosopher problem)
很好的解释了计算机系统中的死锁和饿死的问题原创 2009-03-27 15:32:00 · 2133 阅读 · 1 评论 -
线程/进程 同步 死锁 饥饿
1。为什么要进行线程/进程间的同步?因为存在多个线程或者进程需要访问相同的资源。如果不进行同步,可能导致错误发生。比如因读写的不同步造成的数据错误,或者死锁的出现等,让系统和数据进入到一种错误或者不稳定的状态。 2。使用了多线程就必须要进行同步么?大部分情况下是这样,但也不能绝对。 因为需要进行同步的情况需要满足两个条件:a.存在多个线程/进程b.多个线程/进程之间会相互的原创 2009-03-27 14:15:00 · 5823 阅读 · 0 评论 -
快速排序
原先对快速排序一直弄不清楚。后来不知道咋的,突然脑子一激灵,觉得快速排序也不很难。下面是对快速排序的算法思想的理解: 假设一个幼稚园有20位小朋友,现在站成了一个纵队。老师的任务是,把小朋友按年龄从小到大按顺序排好。前提是小朋友不参与任何的活动,只回答老师自己的年龄。所有的事情都需要老师自己完成。想想这老师怎么做? 比较算法: 1。先确定站在第一个位置的人。方法是 从第原创 2009-04-23 11:18:00 · 611 阅读 · 0 评论 -
向前兼容和向后兼容
经常有人把向前兼容和向后兼容混淆了。其实,这主要是由于中英文化差异引起的。转载 2010-08-16 15:18:00 · 23022 阅读 · 4 评论