《Win32多线程程序设计》学习笔记---(1)

原创 2007年09月17日 16:13:00

        最近开始看《Win32多线程程序设计》 ,感觉受益匪浅,写出来的目的有两个;一是想看看自己理解的程度,能否总结出作者真正想表达的内容。2是与大家共享。好了,废话就不说那么多了!

文章开始讲述了操作系统的演化,作者从早期的MS-DOS1.0版本单任务系统到2.x的可以允许常驻程序(TSR),但是MS-DOS视其为自己的一部分,不是一个应用程序或是一个进程。随后提及到了拥有合作型多任务及抢占式多任务机制的WINDOWS的不同版本!
FAQ01:合作型多任务与抢占式多任务有什么不同--------- 合作型多任务的意思就是说分享CPU是程序的责任,而不是系统的责任,如果有一个程序决定咬住CPU不放,其他程序就没有办法得到执行。抢占式多任务的意思就是操作系统能够强迫应用程序把CPU分享给其他人,程序员不需要额外的努力!
下面介绍2个概念,让我们对进程与线程有一个大体的了解:
进程---Win32的角度看,进程含有内存和资源。资源包括核心对象(如file handles和线程),USER资源(如对话框和字符串),GDI资源等。进程本身不可以执行,他只是提供一个安置内存和线程的地方。
内存------- 每一个进程都关系到内存。大致分为3 Code  Data  Stack .
Code--- 程序的可执行部分,一定是只读性质。这是CPU唯一可以执行的内存。Data是你的程序中所有变量,可以区分为全局变量和静态变量两种。也可以使用mallocnew动态配置内存。Stack是你调用函数时所用的堆栈空间,其中有局部变量。每个线程产生时配有一个堆栈。如果不需要,操作系统会将其动态扩充。所有的内存对进程中的线程都是可用的

《win32多线程程序设计》学习笔记二

一、产生一个线程 1、产生一个线程(并因而成就一个多线程程序),是以CreateThread()函数作为开始。此函数原型如下: 二、使用多线程的结果 1、多线程程序无法预...

《win32多线程程序设计》学习笔记四

一、Critical Sections

转载:《Win32多线程程序设计》学习笔记 第10章 MFC 中的线程

《Win32多线程程序设计》学习笔记 第10章 MFC 中的线程 如果要在MFC程序中产生一个线程,而该线程将调用MFC函数或者使用MFC的任何数据,那么你必须以AfxBeginThre...

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

近日,因为即将离开目前的工作单位,处于工作交接的阶段,工作不太忙。 又因朋友给介绍了一家公司,做多线程方面的研发,问及我对多线程了解的程度,我坦诚的说了解的不多。 这就使我有了机会去接触这本书——...

《Win32多线程程序设计》读书笔记(一)

1,可以使用GetExitThreadCode函数获取线程函数结束时的返回值 2,多线程程序设计成功的关键: 2.1,各线程的数据要分离开来,避免使用全局变量 2.2,不要在线程之间共享GDI对象 2...

win32多线程程序设计笔记(第三章)

一、复习第二章 在第二章中,讲到了两种等待线程的技术:         1)使用Sleep()函数——问题是你不可能事先知道什么事情要等待多久         2)使用busy loop,通过不断...

win32多线程程序设计笔记(第五章)

前面章节介绍了线程创建等过程,现在的问题是:如何在某个线程内终止另外一个正在运行的线程? windows核心编程中提到终止运行线程的方法:        1)线程函数自己返回;     ...

win32多线程程序设计笔记(第六章上)

我们知道当程序调用I/O设备处理一些事情时,让主程序停下来干等I/O的完成是没有效率的。。对这个问题有下面几种解决方法: 方法一:使用另一个线程进行I/O。问题是在主线程中操控多个线程,如何设置同步...

《Win32多线程程序设计》读书笔记之内核对象

所谓句柄(Handle),其实就是指针,指向操作系统内存空间中的某样东西,为了维护系统的完整性与安全性,不允许直接取得。 内核对象与GDI对象不同,内核对象由KERNEL32.DLL管理,而GD...

win 32多线程程序设计读书笔记

一直不是很熟悉windows下的编程,借着学习侯捷老师翻译的《win32 多线程程序设计》来完成操作系统的作业。 1.今天学到的比较重要的概念是核心对象(一下大部分话出自该书): 核心对象可以有...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《Win32多线程程序设计》学习笔记---(1)
举报原因:
原因补充:

(最多只允许输入30个字)