近日,因为即将离开目前的工作单位,处于工作交接的阶段,工作不太忙。

又因朋友给介绍了一家公司,做多线程方面的研发,问及我对多线程了解的程度,我坦诚的说了解的不多。

这就使我有了机会去接触这本书——《win32多线程程序设计》。当时只是打算随便找本书补一下自己在这个方面知识的缺陷,当看到这本书的译者是侯捷老师的时候,我就知道这本书一定是本好书。

这些天用了些零碎的时间把这本书的前4章看了下,有一些小体会,记录下来,留给自己总结提高,如果能对别人有帮助,那是再好不过了。

近几个月一直在埋头写程序和分析程序,很少有时间真正的跳出来去认真读本书。但是现在不得不承认,这几个月的埋头分析程序让我对很多知识点的理解不仅仅停留在理论阶段了。消息分发机制、资源、异步函数、回调、notify、引用计数、信号量、变量命名等这些知识点通过这几个月的不断使用,理解的层次比原来要深上不少。之所以啰嗦的把这些里出来,是因为这些知识点在《win32多线程程序设计》前四章中多少都有涉及,也是对这些知识点的理解让我一个从未真正接触过多线程的人在阅读这本书的时候觉得游刃有余。

异步函数,多个线程执行的时候,每个线程不就是个一步执行的函数吗?你把线程创立后,他们会按照你传入的函数去执行自己的操作,而你不用管他们,可以继续执行自己的操作。

引用计数,这个曾困扰我多次的问题,被我搞明白了以后,在这里用的很轻松。就像是一个可以供多人使用的东西,每个人使用的时候,都会使使用的人数增加1个,如果有人停止了使用,就把使用的人数减掉1个。这个东西只有在没人使用的时候才可以被拿走或者销毁掉。

变量命名,一个看起来很低级的一个问题。不得不否认,如果没有参加过大规模商业软件的开发,仅仅停留在个人练习或者要求不严格的小系统的开发的时候,变量命名是不会太被重视的一个东西。这直接导致的一个后果是,读程序的时候,见到那些命名很长的变量名,会有一种轻微的恐惧感,让人觉的很烦。以前每次看到windows编程那些繁琐的函数名和变量名,我就觉的烦躁。经过了这几个月对编程规范的不断加强,对大量程序的阅读,现在已经有些爱上了这些看起来很复杂的命名,因为它可以让你一眼知道这个变量到底是用来干什么的。这就是自注释。

进程和线程的关系,互斥,死锁,这些知识点对计算机专业毕业的学生都不陌生,这是当年操作系统考试的重点,相信没有人会忘记这些东西。

总结起来,前4章的感觉就是,如果你的操作系统的那点知识还没忘光,而且你对异步、引用计数、消息分发机制并不陌生的话,这些内容会让你感觉很流畅。在流畅的阅读快感中,你还会有意外的惊喜,有些观点或者描述把一些一直以来觉的复杂的东西简单化了。

PS:现在越来越容易跑题了,参杂了不少这几个月的感触。