benny5609的专栏

人生,到世上走一遭,只不过是单纯的体验与学习认识,当我们在临死的时候,可以光荣地对自己说:"我已领略过"便不枉此生。...

深入浅出Win32多线程程序设计之综合实例-5

3.3.5控制接口应用程序员使用下列一组public函数可以获取串口的DCB及串口上发生的事件: //// Return the device control block//DCB CSerialPort::GetDCB(){return m_dcb;...

2008-06-17 14:12:00

阅读数:941

评论数:0

深入浅出Win32多线程程序设计之综合实例-4

3.3.3核心函数:串口线程控制函数串口线程处理函数是整个类中最核心的部分,它主要完成两类工作:(1)利用WaitCommEvent函数对串口上发生的事件进行获取并根据事件的不同类型进行相应的处理;(2)利用WaitForMultipleObjects函数对串口相关的用户控制事件进行等待并做相应处...

2008-06-17 14:11:00

阅读数:891

评论数:0

深入浅出Win32多线程程序设计之综合实例-3

3.多线程串口类使用多线程串口通信更方便的途径是编写一个多线程的串口类,例如Remon Spekreijse编写了一个CSerialPort串口类。仔细分析这个类的源代码,将十分有助于我们对先前所学多线程及同步知识的理解。3.1类的定义 #ifndef...

2008-06-17 14:10:00

阅读数:768

评论数:0

深入浅出Win32多线程程序设计之综合实例-2

2.工程实例下面我们用第1节所述API实现一个多线程的串口通信程序。这个例子工程(工程名为MultiThreadCom)的界面很简单,如下图所示: ...

2008-06-17 14:09:00

阅读数:735

评论数:0

深入浅出Win32多线程程序设计之综合实例-1

本章我们将以工业控制和嵌入式系统中运用极为广泛的串口通信为例讲述多线程的典型应用。而网络通信也是多线程应用最广泛的领域之一,所以本章的最后一节也将对多线程网络通信进行简短的描述。1.串口通信在工业控制系统中,工控机(一般都基于PC Windows平台)经常需要与单片机通过串口进行通信。因此,操作和...

2008-06-17 14:08:00

阅读数:669

评论数:0

深入浅出Win32多线程程序设计之线程通信

简介  线程之间通信的两个基本问题是互斥和同步。  线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。  线程互斥是指对于共享的操作系统资源(指的是广义的"资源",而不是Windows的....

2008-06-17 14:05:00

阅读数:617

评论数:0

深入浅出Win32多线程程序设计之线程控制

WIN32线程控制主要实现线程的创建、终止、挂起和恢复等操作,这些操作都依赖于WIN32提供的一组API和具体编译器的C运行时库函数。  1.线程函数  在启动一个线程之前,必须为线程编写一个全局的线程函数,这个线程函数接受一个32位的LPVOID作为参数,返回一个UINT,线程函数的结构为: ...

2008-06-17 14:01:00

阅读数:662

评论数:0

深入浅出Win32多线程程序设计之基本概念

引言  从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓的"多任务",而如今的Win32操作系统却可以一边听音乐,一边编程,一边打印文档。  理解多线程及其同步、互斥等通信方式是理解现代...

2008-06-17 13:59:00

阅读数:549

评论数:0

深入浅出Win32多线程设计之MFC的多线程(II)

使用VC++ 6.0的向导完成一个最简单的单文档架构MFC应用程序MFCThread:  (1) 输入MFC EXE工程名MFCThread;  (2) 选择单文档架构,不支持Document/View结构;  (3) ActiveX、3D container等其他选项都选择无。  我们来分析这个...

2008-06-17 13:56:00

阅读数:695

评论数:0

深入浅出Win32多线程设计之MFC的多线程(I)

1、创建和终止线程  在MFC程序中创建一个线程,宜调用AfxBeginThread函数。该函数因参数不同而具有两种重载版本,分别对应工作者线程和用户接口(UI)线程。  工作者线程 CWinThread *AfxBeginThread( AFX_TH...

2008-06-17 13:55:00

阅读数:870

评论数:0

Windows程序设计(第2版)多线程四

2.应用举例下面例子中,主线程通过将事件状态设为“受信”来通知子线程开始工作。这是事件内核对象一个很重要的用途,示例代码如下:#include                                              // 03EventDemo工程下#include #inclu...

2008-06-17 13:33:00

阅读数:711

评论数:0

Windows程序设计(第2版)多线程三

3.2 线程同步同步可以保证在一个时间内只有一个线程对某个共享资源有控制权。共享资源包括全局变量、公共数据成员或者句柄等。临界区内核对象和事件内核对象可以很好地用于多线程同步和它们之间的通信。本节将结合各种简单的例子来讨论产生同步问题的根本原因,进而提出相应的解决方案。3.2.1 临界区对象1.为...

2008-06-17 13:32:00

阅读数:862

评论数:1

Windows程序设计(第2版)多线程二

5.是否受信Signaled成员Signaled指示了线程对象是否为“受信”状态。线程在运行期间,Signaled的值永远是FALSE,即“未受信”,只有当线程结束以后,系统才把Signaled的值置为TRUE。此时,针对此对象的等待函数就会返回,如上一小节中的WaitForSingleObjec...

2008-06-17 13:31:00

阅读数:672

评论数:0

Windows程序设计(第2版)多线程

应用程序被装载到内存之后就形成了进程,这是上一章重点讨论的话题。但是程序在内存中是如何执行的呢?这就涉及到了代码的执行单元——线程。本章就线程的创建、多线程处理展开介绍。本章首先介绍创建线程的方法和线程内核对象,接着详细分析产生线程同步问题的根本原因,并提出一些解决办法。为了扩展多线程的应用和为读...

2008-06-17 13:30:00

阅读数:644

评论数:0

线程同步机制的区别与比较及进程通信方法

线程同步机制的区别与比较及进程通信方法   有关多线程的一些技术问题:1、  何时使用多线程?2、  线程如何同步?3、  线程之间如何通讯?4、  进程之间如何通讯?先来回答第一个问题,线程实际主要应用于四个主要领域,当然各个领域之间不是绝对孤立的,他们有可能是重叠的,但是每个程序应该都可以归于...

2008-03-28 11:21:00

阅读数:692

评论数:0

Windows程序程序设计---线程同步2

3.2.5 互斥内核对象互斥(Mutex)是一种用途非常广泛的内核对象。能够保证多个线程对同一共享资源的互斥访问。同临界区有些类似,只有拥有互斥对象的线程才具有访问资源的权限,由于互斥对象只有一个,因此就决定了任何情况下此共享资源都不会同时被多个线程所访问。当前占据资源的线程在任务处理完后应将拥有...

2008-03-28 11:19:00

阅读数:592

评论数:0

Windows程序程序设计---线程同步1

3.2 线程同步同步可以保证在一个时间内只有一个线程对某个共享资源有控制权。共享资源包括全局变量、公共数据成员或者句柄等。临界区内核对象和事件内核对象可以很好地用于多线程同步和它们之间的通信。本节将结合各种简单的例子来讨论产生同步问题的根本原因,进而提出相应的解决方案。3.2.1 临界区对象1.为...

2008-03-28 11:18:00

阅读数:708

评论数:0

Windows程序设计---多线程2

4.退出代码Exit Code成员Exit Code指定了线程的退出代码,也可以说是线程函数的返回值。在线程运行期间,线程函数还没有返回,Exit Code的值是STILL_ACTIVE。线程运行结束后,系统自动将ExitCode设为线程函数的返回值。可以用GetExitCodeThread函数得...

2008-03-28 11:16:00

阅读数:743

评论数:0

Windows程序设计---多线程1

应用程序被装载到内存之后就形成了进程,这是上一章重点讨论的话题。但是程序在内存中是如何执行的呢?这就涉及到了代码的执行单元——线程。本章就线程的创建、多线程处理展开介绍。本章首先介绍创建线程的方法和线程内核对象,接着详细分析产生线程同步问题的根本原因,并提出一些解决办法。为了扩展多线程的应用和为读...

2008-03-28 11:15:00

阅读数:1002

评论数:0

volatile——多线程程序员最好的朋友volatile

泛型:volatile——多线程程序员最好的朋友volatile修正符及让你的编译器为你检查竞态条件(race conditions)Andrei Alexandrescu 我不想破坏你的情绪,但这篇专栏针对多线程编程中最可怕的问题。如果说——正如前面一篇泛型所说的——写出意外安全(excepti...

2008-03-26 13:46:00

阅读数:684

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭