随笔分类 -  windows进程与线程

摘要:本文转载于:https://blog.csdn.net/ywcpig/article/details/52557080 内存池 平常我们使用new、malloc在堆区申请一块内存,但由于每次申请的内存大小不一样就会产生很多内存碎片,造成不好管理与浪费的情况。 内存池则是在真正使用内存之前,先申请分配 阅读全文
posted @ 2018-03-28 14:56 Curo 阅读(2583) 评论(0) 推荐(0)
摘要:进程间通信: 1.文件映射(Memory-Mapped Files) 文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待。因此,进程不必使用文件I/O操作, 只需简单的指针操作就可读取和修改文件的内容。 Win32 API允许多个进程访问同一文件映 阅读全文
posted @ 2018-03-22 14:08 Curo 阅读(1981) 评论(0) 推荐(0)
摘要:本文转载于:http://blog.csdn.net/morewindows/article/details/7470936 前面介绍了关键段CS、事件Event在经典线程同步问题中的使用。本篇介绍用互斥量Mutex来解决这个问题。 互斥量也是一个内核对象,它用来确保一个线程独占一个资源的访问。互斥 阅读全文
posted @ 2018-03-05 18:16 Curo 阅读(239) 评论(0) 推荐(0)
摘要:本文首先介绍下如何使用关键段,然后再深层次的分析下关键段的实现机制与原理。 关键段CRITICAL_SECTION一共就四个函数,使用很是方便。下面是这四个函数的原型和使用说明。 函数功能:初始化 函数原型: void InitializeCriticalSection(LPCRITICAL_SEC 阅读全文
posted @ 2018-03-05 17:47 Curo 阅读(188) 评论(0) 推荐(0)
摘要:这个问题涉及到线程的同步和互斥,是一道非常有代表性的多线程同步问题,如果能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。 程序描述: 主线程启动10个子线程并将表示子线程序号的变量地址作为参数传递给子线程。子线程接收参数 -> sleep(50) -> 全局变量++ -> sleep(0) 阅读全文
posted @ 2018-03-05 17:29 Curo 阅读(165) 评论(0) 推荐(0)
摘要:上一篇《多线程第一次亲密接触 CreateThread与_beginthreadex本质区别》中讲到一个多线程报数功能。为了描述方便和代码简洁起见,我们可以只输出最后的报数结果来观察程序是否运行出错。这也非常类似于统计一个网站每天有多少用户登录,每个用户登录用一个线程模拟,线程运行时会将一个表示计数 阅读全文
posted @ 2018-03-05 16:59 Curo 阅读(260) 评论(0) 推荐(0)
摘要:本文转载于:http://blog.csdn.net/sac761/article/details/52456385 WaitForMultipleObjects是Windows中的一个功能非常强大的函数,几乎可以等待Windows中的所有的内核对象 函数原型为: DWORD WaitForMult 阅读全文
posted @ 2018-03-05 16:56 Curo 阅读(859) 评论(0) 推荐(0)
摘要:本文转载于:http://blog.csdn.net/morewindows/article/details/7538247 来详细介绍常用的线程同步互斥机制——关键段、事件、互斥量、信号量。下面对它们作个总结,帮助大家梳理各个知识点。 首先来看下关于线程同步互斥的概念性的知识,相信大家通过前面的文 阅读全文
posted @ 2018-01-26 15:59 Curo 阅读(199) 评论(0) 推荐(0)
摘要:前面介绍了关键段CS、事件Event、互斥量Mutex在经典线程同步问题中的使用。本篇介绍用信号量Semaphore来解决这个问题。 首先也来看看如何使用信号量,信号量Semaphore常用有三个函数,使用很方便。下面是这几个函数的原型和使用说明。 第一个 CreateSemaphore 函数功能: 阅读全文
posted @ 2018-01-26 15:54 Curo 阅读(170) 评论(0) 推荐(0)
摘要:原文地址:http://blog.csdn.net/morewindows/article/details/7445233 上一篇中使用关键段来解决经典的多线程同步互斥问题,由于关键段的“线程所有权”特性所以关键段只能用于线程的互斥而不能用于同步。本篇介绍用事件Event来尝试解决这个线程同步问题。 阅读全文
posted @ 2018-01-26 15:19 Curo 阅读(217) 评论(0) 推荐(0)
摘要:第一篇 多线程笔试面试题汇总 本文转载于秒杀多线程系列,原博客地址:http://blog.csdn.net/morewindows/article/details/7392749 多线程在笔试面试中经常出现,下面列出一些公司的多线程笔试面试题。首先是一些概念性的问答题,这些是多线程的基础知识,经常 阅读全文
posted @ 2018-01-25 20:38 Curo 阅读(692) 评论(0) 推荐(0)
摘要:本文转载于:http://blog.csdn.net/sunxc123/article/details/7742982 在MFC程序中,使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串。CString的Format方 阅读全文
posted @ 2018-01-25 20:33 Curo 阅读(6771) 评论(0) 推荐(0)
摘要:在本例子中我们使用——beginThreadex这个函数,它和createThread的区别是: 为了方便管理,我么在使用该函数的时候可以把它的线程函数作为类成员,这也就需要在类中把该函数变成静态函数 1)如果你正在编写C/C++代码,决不应该调用CreateThread。相反,应该使用Visual 阅读全文
posted @ 2018-01-25 20:09 Curo 阅读(427) 评论(0) 推荐(0)
摘要:1.事件: (在信息交换函数中将控件的值与控件id进行绑定,这样我们就可以更新或者获取控件的值) 2.消息 https://www.cnblogs.com/itech/archive/2010/06/29/1767311.html 阅读全文
posted @ 2018-01-25 19:51 Curo 阅读(1796) 评论(0) 推荐(0)
摘要:本文转载于:http://blog.csdn.net/libaineu2004/article/details/40398405 1、线程分为UI线程和工作者线程,UI线程有窗口,窗口自建了消息队列,这个UI线程维护“消息队列”,“消息队列”是界面线程和工作者线程的最大区别。所以有用户界面的一般称为 阅读全文
posted @ 2018-01-25 14:07 Curo 阅读(2067) 评论(0) 推荐(1)
摘要:进程与线程的解析进程:一个正在运行的程序的实例,由两部分组成: 1.一个内核对象,操作系统用它来管理进程。内核对象也是系统保存进程统计信息的地方。 2.一个地址空间,其中包含所有可执行文件或DLL模块的代码和数据。此外,它还包含动态内存分配,比如线程堆栈和堆的分配。 进程要做任何事情,都必须让一个线 阅读全文
posted @ 2018-01-24 21:16 Curo 阅读(385) 评论(0) 推荐(0)