多线程编程
jdq_summer
算法数据结构大数据
展开
-
多线程编程之进程与线程关系
进程(Process)是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。程序只是一组指令的有序集合,它本身没有任何运行的含义,只是一个静态实体。而进程则不同,它是程序在某个数据集上的执行,是一个动态实体。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消,反映了一个程序在一定的数据集上运行的全部动态过程。 进原创 2013-05-20 15:29:44 · 539 阅读 · 0 评论 -
多线程编程之线程控制函数
WIN32线程控制主要实现线程的创建、终止、挂起和恢复等操作,这些操作都依赖于WIN32提供的一组API和具体编译器的C运行时库函数。 1.线程函数 在启动一个线程之前,必须为线程编写一个全局的线程函数,这个线程函数接受一个32位的LPVOID作为参数,返回一个UINT,线程函数的结构为:UINT ThreadFunction(LPVOID pParam转载 2013-05-20 16:48:20 · 640 阅读 · 0 评论 -
关键代码段实现线程同步
关键代码段也称为临界区,工作在用户方式下,它是指一个小代码段,在代码能执行前,它必须独占对某些资源的访问权。通常把多线程中访问同一种资源的那部分代码当做关键代码段。 关键代码段就好像公共电话亭一样,只有公共电话亭没有人在打电话时,其他人才有可能去打电话,如果有人打电话,其他人必须等待,当使用电话的那个人离开后,其他人才可以进去打电话。关键代码段类似这种情况,只有没有线程访问关键代码段时原创 2013-05-07 17:51:13 · 697 阅读 · 0 评论 -
多线程编程之线程通信
简介 线程之间通信的两个基本问题是互斥和同步。 线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。 线程互斥是指对于共享的操作系统资源(指的是广义的"资源",而不是Windows的.res文件,譬如全局变量就是一种共享资源),在各线程访问时的排它性。当有若干个线程都要使用某一共享转载 2013-05-20 18:35:13 · 487 阅读 · 0 评论 -
互斥对象与事件对象实现线程同步
互斥对象是系统内核维护的一种数据结构,它保证了对象对单个线程的访问权互斥对象的结构:包含了一个使用数量,一个线程ID,一个计数器使用数量是指有多少个线程在调用该对象线程ID是指互斥对象维护的线程的ID计数器表示当前线程调用该对象的次数为了创建互斥对象,需要调用函数:CreateMutex,该函数可以创建或打开一个命名的或匿名的互斥对象,然后程序就可以利用该互斥对象完成线程间的同原创 2013-05-07 16:38:51 · 957 阅读 · 0 评论 -
多线程网络编程
最近学习了网络编程,在学习多线程技术后,就尝试着用多线程技术写了一个网络聊天程序。下面介绍一下具体的实现过程。 既然是聊天程序,肯定要发送数据和接收数据,这里我新创建了一个线程来接收数据,用主线程来发送数据。同一个进程中的两个线程可以独立运行并相互交通信。因此可以实现数据的接收和发送。 先建立一个基于对话框的应用程序,并在对话框上放置接收数据的编辑框、发送数据的编辑框、转载 2013-07-17 15:48:30 · 696 阅读 · 0 评论 -
VC++多线程编程
留个纪念,不错的总结。十个例子清晰列举啦多线程编程的奥妙。http://www.cnblogs.com/wxfasdic/archive/2010/09/23/1833522.html VC中多线程使用比较广泛而且实用,在网上看到的教程.感觉写的挺好.一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框转载 2013-07-17 19:08:58 · 568 阅读 · 0 评论 -
MFC对多线程编程的支持
MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外 的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程而言,这两种线转载 2013-08-11 18:10:44 · 540 阅读 · 0 评论