山寨:不是最好的,是最适合我们的!欢迎体验山寨 中文版MSDN

Blog @ Blog

当华美的叶片落尽,生命的脉络才历历可见。 -- 聂鲁达

常用链接

统计

积分与排名

BBS

Blog

Web

最新评论

Win32 多线程

进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。
VC 多线程编程
     摘要: 进程和线程都是操作系统的概念。进程是应用程序的执行实例,每个进程是由私有的虚拟地址空间、代码、数据和其它各种系统资源组成,进程在运行过程中创建的资源随着进程的终止而被销毁,所使用的系统资源在进程终止时被释放或关闭。
  线程是进程内部的一个执行单元。系统创建好进程后,实际上就启动执行了该进程的主执行线程,主执行线程以函数地址形式,比如说main或WinMain函数,将程序的启动点提供给Windows系统。主执行线程终止了,进程也就随之终止。
  每一个进程至少有一个主执行线程,它无需由用户去主动创建,是由系统自动创建的。用户根据需要在应用程序中创建其它线程,多个线程并发地运行于同一个进程中。一个进程中的所有线程都在该进程的虚拟地址空间中,共同使用这些虚拟地址空间、全局变量和系统资源,所以线程间的通讯非常方便,多线程技术的应用也较为广泛。  阅读全文

posted @ 2008-08-15 17:18 isabc 阅读(26520) | 评论 (14)  编辑

MFC全局函数::AfxBeginThread

posted @ 2008-05-23 22:56 isabc 阅读(23026) | 评论 (1)  编辑

AfxBeginThread的基本用法

posted @ 2008-05-23 22:55 isabc 阅读(2988) | 评论 (0)  编辑

多线程与串行通信
     摘要: Windows是一个多任务操作系统。传统的Windows 3.x只能依靠应用程序之间的协同来实现协同式多任务,而Windows 95/NT实行的是抢先式多任务。

  在Win 32(95/NT)中,每一个进程可以同时执行多个线程,这意味着一个程序可以同时完成多个任务。对于象通信程序这样既要进行耗时的工作,又要保持对用户输入响应的应用来说,使用多线程是最佳选择。当进程使用多个线程时,需要采取适当的措施来保持线程间的同步。

  利用Win 32的重叠I/O操作和多线程特性,程序员可以编写出高效的通信程序。在这一讲的最后将通过一个简单的串行通信程序,向读者演示多线程和重叠I/O的编程技术。  阅读全文

posted @ 2008-01-07 23:40 isabc 阅读(2578) | 评论 (1)  编辑

Overlapped I/O模型深入分析
     摘要: Overlapped I/O也称Asynchronous I/O,异步I/O模型。异步I/O和同步I/O不同,同步I/O时,程序被挂起,一直到I/O处理完,程序才能获得控制。异步I/O,调用一个函数告诉 OS,进行I/O操作,不等I/O结束就立即返回,继续程序执行,操作系统完成I/O之后,通知消息给你。Overlapped I/O只是一种模型,它可以由内核对象(hand),事件内核对象(hEvent), 异步过程调用(apcs) 和完成端口(I/O completion)实现。
  阅读全文

posted @ 2008-01-07 22:47 isabc 阅读(13145) | 评论 (1)  编辑

设备I/O之OVERLAPPED [转]
     摘要: OVERLAPPED,顾名思义为重叠,乍一看会很奇怪,重叠?谁跟谁重叠?似乎在WIN32的Programming中没有这个概念呀?要讨论这个问题就要追溯到对设备I/O的访问中  阅读全文

posted @ 2008-01-07 21:27 isabc 阅读(1412) | 评论 (0)  编辑

广告信息(免费广告联系)

中文版MSDN:
欢迎体验