《win32多线程程序设计》随笔1

简介: 近日,因为即将离开目前的工作单位,处于工作交接的阶段,工作不太忙。 又因朋友给介绍了一家公司,做多线程方面的研发,问及我对多线程了解的程度,我坦诚的说了解的不多。

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

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

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

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

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

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

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

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

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

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

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

目录
相关文章
|
SQL 调度 C#
C#OOP之十二 创建多线程程序
C#OOP之十二 创建多线程程序
63 0
|
C# Windows
C#编程-45:WinForm程序复习笔记
C#编程-45:WinForm程序复习笔记
174 0
C#编程-45:WinForm程序复习笔记
|
前端开发 JavaScript
十一、详解面向对象【上】
如果要我总结一下学习前端以来我遇到了哪些瓶颈,那么面向对象一定是第一个会想到的。尽管现在对于面向对象有了一些的了解,但是当初那种似懂非懂的痛苦,依然历历在目。 为了帮助大家能够更加直观的学习和了解面向对象,我会用尽量简单易懂的描述来展示面向对象的相关知识。并且也准备了一些实用的例子帮助大家更加快速的掌握面向对象的真谛。
128 0
十一、详解面向对象【上】
十一、详解面向对象[下]
原型对象其实也是普通的对象。几乎所有的对象都可能是原型对象,也可能是实例对象,而且还可以同时是原型对象与实例对象。这样的一个对象,正是构成原型链的一个节点。因此理解了原型,那么原型链并不是一个多么复杂的概念。 我们知道所有的函数都有一个叫做toString的方法。那么这个方法到底是在哪里的呢? 先随意声明一个函数:
108 0
十一、详解面向对象[下]
|
机器学习/深度学习 程序员 API
深入浅出Win32多线程程序设计之基本概念
一.深入浅出Win32多线程程序设计之基本概念[转] 引言  从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓的"多任务",而如今的Win32操作系统却可以一边听音乐,一边编程,一边打印文档。
1417 1
下一篇
无影云桌面