
进程和线程
文章平均质量分 73
believe_s
这个作者很懒,什么都没留下…
展开
-
使用线程——创建线程
该CreateThread函数创建一个进程的新的线程。创建线程必须指定新线程要执行的代码的起始地址。通常,起始地址是程序代码中定义的函数的名称(有关更多信息,请参阅ThreadProc)。此函数采用单个参数并返回DWORD值。一个进程可以让多个线程同时执行相同的功能。以下是演示如何创建执行本地定义函数的新线程的简单示例MyThreadFunction。调用线程使用WaitForMultip...原创 2018-09-11 13:24:04 · 1821 阅读 · 0 评论 -
CreateThread函数
创建一个在调用进程的虚拟地址空间内执行的线程。要创建在另一个进程的虚拟地址空间中运行的线程,请使用 CreateRemoteThread函数。语法HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_...原创 2018-09-11 12:26:19 · 29158 阅读 · 0 评论 -
使用线程池功能
此示例创建自定义线程池,创建工作项和线程池计时器,并将它们与清理组关联。该池由一个持久性线程组成。它演示了以下线程池函数的使用:CloseThreadpool CloseThreadpoolCleanupGroupCloseThreadpoolCleanupGroupMembersCloseThreadpoolWaitCreateThreadpoolCreateThreadpool...原创 2018-09-11 14:41:11 · 242 阅读 · 0 评论 -
使用重定向的输入和输出创建子进程
本主题中的示例演示如何使用控制台进程中的CreateProcess函数创建子进程。它还演示了一种使用匿名管道重定向子进程的标准输入和输出句柄的技术。请注意,命名管道也可用于重定向进程I / O.所述CreatePipe函数使用SECURITY_ATTRIBUTES结构来创建可继承句柄读写两个管道的端部。一个管道的读取端用作子进程的标准输入,另一个管道的写入端是子进程的标准输出。这些管道句柄在S...原创 2018-09-11 14:43:43 · 1089 阅读 · 0 评论 -
线程池概述
线程池一个线程池的工作线程代表应用程序的高效执行异步回调的集合。线程池主要用于减少应用程序线程的数量并提供工作线程的管理。应用程序可以对工作项进行排队,将工作与可等待的句柄相关联,根据计时器自动排队,并与I / O绑定。线程池架构以下应用程序可以从使用线程池中受益:高度并行的应用程序,可以异步分派大量小工作项(例如分布式索引搜索或网络I / O)。一个创建和销毁大量线程的应用程...原创 2018-09-11 14:53:49 · 212 阅读 · 0 评论 -
线程池API
线程池API线程池应用程序编程接口(API)使用基于对象的设计。以下每个对象都由用户模式数据结构表示:池对象是一组可用于执行工作的工作线程。每个进程可以根据需要创建具有不同特征的多个隔离池。每个进程都有一个默认池。清理组与一组回调生成对象相关联。存在等待并释放作为每个清理组成员的所有对象的函数。这使应用程序无需跟踪它创建的所有对象。将工作对象分配给池,并可选择分配给清理组。它可以被发...原创 2018-09-11 15:09:08 · 557 阅读 · 0 评论 -
线程池
有许多应用程序创建线程,在休眠状态下花费大量时间等待事件发生。其他线程可以进入休眠状态,仅定期唤醒以轮询更改或更新状态信息。线程池使您可以通过为应用程序提供由系统管理的工作线程池来更有效地使用线程。至少有一个线程监视排队到线程池的所有等待操作的状态。等待操作完成后,来自线程池的工作线程执行相应的回调函数。本主题描述了原始线程池API。Windows Vista中引入的线程池API更简单,更可靠...原创 2018-09-11 15:14:37 · 225 阅读 · 0 评论 -
使用线程本地存储
线程本地存储(TLS)使同一进程的多个线程能够使用由TlsAlloc函数分配的索引来存储和检索线程本地的值。在此示例中,在进程启动时分配索引。当每个线程启动时,它会分配一个动态内存块,并使用TlsSetValue函数在TLS槽中存储指向此内存的指针。CommonFunc函数使用TlsGetValue函数来访问与调用线程本地的索引相关联的数据。在每个线程终止之前,它会释放其动态内存。在进程终止之前,...原创 2018-09-11 15:21:46 · 734 阅读 · 0 评论 -
CreateRemoteThread函数
CreateRemoteThread函数创建在另一个进程的虚拟地址空间中运行的线程。使用CreateRemoteThreadEx函数创建在另一个进程的虚拟地址空间中运行的线程,并可选择指定扩展属性。语法HANDLE CreateRemoteThread( HANDLE hProcess, LPSECURITY_ATTRIBUTES lp...原创 2018-09-11 15:35:52 · 3292 阅读 · 0 评论