当前所在位置: 首页 > 通信工程 > 正文

基于VC++的多线程通信程序设计论文

【 字体:

基于VC++的多线程通信程序设计论文

基于VC++的多线程通信程序设计论文

  介绍了Windows多线程技术、多线程间通信、以及多线程通信程序设计的主要函数,然后在前面关键技术的基础上,采用VC++ 6.0 为开发平台, 实现了一个基于VC++的多线程局域网聊天程序。

基于VC++的多线程通信程序设计论文

  在多任务Windows编程中,为了提高代码的时、空效率,广泛采取后台程序和前台程序,而前台任务及后台任务是通过多线程技术来实现,从而线程间的通信就变得极为重要。Visual C++对Windwos线程和消息的多任务机制提供了强有力的支持,并封装了大量的通信函数,给多线程通信程序编程带来了很大的便利。

  1、多线程技术概述

  多线程在Windows编程中是一个比较重要的概念。所谓多线程,即在同一个程序中可以同时执行多个任务。这意味着,编程者可以将整个任务分成几个线程,然后让操作系统同时执行,从而提高程序的执行效率。一般线程被分为两种:用户界面线程和工作线程(又称为后台线程)。

  1.1 创建线程与终止线程

  创建线程的过程可以分成两大步骤,首先编写线程函数,然后创建线程,并将其参数线程函数地址指向刚刚编写的线程函数。线程函数的退出,除了使用退出函数处理外,大都是随着程序的结束而退出。

  1.2 线程同步

  多线程提高了程序执行的效率,提高了编程的灵活性,但同时也引入了新的问题。线程之间经常要同时访问一些资源,因此对共享资源进行访问引起冲突是不可避免的。另外,在Windwos的消息驱动方式下,必须某个事件的发生了,才可以执行某个线程,为了解决上述问题,必须引入线程同步的概念。Win32 API提供了多种同步控制对象,包括临界区、互斥对象、信号量和事件。

  2、多线程间通信

  一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的。多线程间通信可以采用全局变量、自定义消息、事件对象通信。

  1) 使用全局变量进行通信

  由于属于同一个进程的各个线程共享操作系统分配该进程的资源,故解决线程间通信最简单的一种方法是使用全局变量。对于标准类型的全局变量,可以使用volatile修饰符,它告诉编译器无需对该变量作任何的优化,即无需将它放到一个寄存器中,并且该值可被外部改变。如果线程间所需传递的信息较复杂,可以定义一个结构,通过传递指向该结构的指针进行传递信息。

  2) 使用自定义消息进行通信

  可以在一个线程的执行函数中向另一个线程发送自定义的消息来达到通信的目的。一个线程向另外一个线程发送消息是通过操作系统实现的。利用Windows操作系统的消息驱动机制,当一个线程发出一条消息时,操作系统首先接收到该消息,然后把该消息转发给目标线程,接收消息的线程必须已经建立了消息循环。

  3) 使用事件对象进行通信

  在线程之间传送信号的一种比较复杂的方法是使用享件对象,在MFC中有一个事件类CEvent。一个事件对象可以处于两种状态的一种:信号态和非信号态。线程能够监视处于信号态的事件,以便在适当的时间执行对事件的操作。

  3、多线程通信程序设计

  3.1 重要函数

  1) Win32 API对多线程编程的支持

  Win32提供了一系列的API函数来完成线程的创建、挂起、恢复、终结以及通信等工作。下面将选取其中的一些重要函数进行说明。

  ①HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,DWORD dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId);

  该函数在其调用进程的进程空间里创建一个新的线程,并返回已建线程的句柄,如果创建成功则返回线程的句柄,否则返回NULL。

  ②DWORD SuspendThread(HANDLE hThread);

  该函数用于挂起指定的线程,如果函数执行成功,则线程的执行被终止。

阅读全文
论文助手 微信扫一扫
相关推荐

信誉说明

信誉说明
毕业论文网创建于2006年,是国内最早的一批论文资料库与论文网站。在以往10多年的服务中,我们一直将信誉作为工作准则,专注品牌的建设。通过不断的业务完善和提高,我们现在成为学

毕业论文设计指导教师评语

毕业论文设计指导教师评语
转眼间充满意义的大学生活就即将结束,毕业论文是毕业生都必须通过的,毕业论文是一种有计划的、比较正规的检验大学学习成果的形式,那么应当如何写毕业论文呢?下面是小编整理的毕业论文设计指导教师评语,希望能够帮助到大家。  毕业论文设计指导教师评语1  该生能比较全面地完成毕业设计(论文)的任务,方案合理、方法正确,能综合运用本专业的基础知识,分析问题和解决问题的潜力较强。能够运用本学科的常规研究分析方法,运用相关开发技术及软件,进行资料收集、

浅谈如何激发学生的政治学习兴趣

浅谈如何激发学生的政治学习兴趣
浓厚的兴趣是成功的一半。对中学生来说,学习的兴趣就是他们学习的内在驱动力。因此,无论哪一门学科的教学都应高度重视培养学生学习的兴趣,并努力把兴趣培养发展成为追求理想的动力。

解读《诗经》中丰富的妇女形象论文

解读《诗经》中丰富的妇女形象论文
在社会的各个领域,大家或多或少都会接触过论文吧,论文是学术界进行成果交流的工具。那么你知道一篇好的论文该怎么写吗?下面是小编帮大家整理的解读《诗经》中丰富的妇女形象论文,欢迎阅读与收藏。  一、善良软弱的妇女形象  《邶风·谷风》的叙述语气以女主人公自述的方式向我们展示了她的勤劳和善良, 但是又是十分的软弱, 使我们一读完就能感受到女主人公的形象特征。  从内容可以看出, 女主人公在夫家最困难的时候,用勤劳善良的本性和丈夫一起同心同德,

论文答辩开场白(合集15篇)

论文答辩开场白(合集15篇)
在平平淡淡的日常中,大家都经常看到论文的身影吧,论文是进行各个学术领域研究和描述学术研究成果的一种说理文章。写论文的注意事项有许多,你确定会写吗?下面是小编为大家收集的论文答辩开场白,欢迎阅读,希望大

浅析童年经验对萧红文学创作的影响论文

浅析童年经验对萧红文学创作的影响论文
文章分析了童年经验对作家萧红文学创作的影响。童年经验包括“不愉快”和“愉快”两大类,认为“不愉快”的童年使萧红作品出现“父辈缺失”:“愉快”的童年使萧红作品中反复出现祖孙书写的特点。

土木建筑毕业论文答辩自述

土木建筑毕业论文答辩自述
论文答辩是大学论文考核过程中的最后一个重要环节,下面是小编搜集整理的土木建筑毕业论文答辩自述范文,欢迎阅读参考。 一、范文 各位老师,上午好! 我叫XXX,是XX级土木XX班的学生,我的毕业设计的题目是东海中学教学楼设计。毕业设计从去年12月份开始,一

优秀硕士开题报告

优秀硕士开题报告
硕士开题报告作为硕士研究生论文写作的重要支撑,是导师与评委判断硕士论文研究价值、可行性及创新性的主要途径,下面是小编搜集整理的优秀硕士开题报告模板,欢迎阅读参考。 论文题目: 旅游城市的旅游地产开发模式研究 一、课题来源及选题的指导思想 旅游
友情链接