微软在Windows API中提供了建立新的线程的函数CreateThread,

概述:
当使用CreateProcess调用时,系统将创建一个进程和一个主线程。CreateThread将在主线程的基础上创建一个新线程,大致做如下步骤:
1在内核对象中分配一个线程标识/句柄,可供管理,由CreateThread返回
2把线程退出码置为STILL_ACTIVE,把线程挂起计数置1
3分配context结构
4分配两页的物理存储以准备栈,保护页设置为PAGE_READWRITE,第2页设为PAGE_GUARD
5lpStartAddr和lpvThread值被放在栈顶,使它们成为传送给StartOfThread的参数
6把context结构的栈指针指向栈顶(第5步)指令指针指向startOfThread函数

语法:
    hThread = CreateThread (&security_attributes, dwStackSize, ThreadProc,pParam, dwFlags, &idThread) ;

参数说明:  
    第一个参数是指向SECURITY_ATTRIBUTES型态的结构的指针。在Windows 98中忽略该参数。在Windows NT中,它被设为NULL。第二个参数是用于新线程的初始堆栈大小,默认值为0。在任何情况下,Windows根据需要动态延长堆栈的大小。
  CreateThread的第三个参数是指向线程函数的指针。函数名称没有限制,但是必须以下列形式声明:
DWORD WINAPI ThreadProc (PVOID pParam) ;
 
  CreateThread的第四个参数为传递给ThreadProc的参数。这样主线程和从属线程就可以共享数据。
  CreateThread的第五个参数通常为0,但当建立的线程不马上执行时为旗标CREATE_SUSPENDED。线程将暂停直到呼叫ResumeThread来恢复线程的执行为止。第六个参数是一个指标,指向接受执行绪ID值的变量

CreateThread函数--创建线程相关推荐

  1. C++使用CreateThread函数创建线程

    使用CreateThread函数创建线程 线程是进程中的一个实体,是被系统独立调度和分派的基本单位.一个进程可以拥有多个线程,但是一个线程必须有一个进程.线程自己不拥有系统资源,只有运行所必须的一些数 ...

  2. 使用CreateThread函数创建线程

    线程是进程中的一个实体,是被系统独立调度和分派的基本单位.一个进程可以拥有多个线程,但是一个线程必须有一个进程.线程自己不拥有系统资源,只有运行所必须的一些数据结构,但它可以与同属于一个进程的其它线程 ...

  3. c语言createthread函数,C++中CreateThread函数创建线程的用法和实例

    CreateThread是一种微软在Windows API中提供了建立新的线程的函数,该函数在主线程的基础上创建一个新线程.线程终止运行后,线程对象仍然在系统中,必须通过CloseHandle函数来关 ...

  4. CreateThread创建线程函数详细讲解

    CreateThread CreateThread函数创建一个要在调用进程的地址空间中执行的线程.(MSDN讲解如下) 处理CreateThread ( LPSECURITY_ATTRIBUTES l ...

  5. windows系统中创建线程常用哪几个函数,有什么区别?

    windows系统中创建线程常用哪几个函数? 在windows系统中创建线程的函数有: CreadThread,AfxBeginThread,_beginthread,_beginthreadex. ...

  6. _beginthread和CreateThread 创建线程

    建立一个线程. unsigned long beginthread(void(cdecl *startaddress)(void*),unsigned stacksize, void *arglist ...

  7. c++创建线程:CreateThread 和pthread_create和 _beginthreadex

    CreateThread 在 Windows 中,您可以使用 CreateThread() 来创建线程,创建的线程在调用进程的虚拟地址空间中运行.  HANDLE CreateThread(   LP ...

  8. 为什么不能线程调用类的成员函数_C++多线程编程之创建线程的几种方法

    点蓝色字关注"CurryCoder的程序人生" 微信公众号:CurryCoder的程序人生 怕什么真理无穷,进一寸有一寸的欢喜 1.线程基础知识 可执行程序运行起来,就会生成一个进 ...

  9. 使用线程——创建线程

    CreateThread函数创建一个进程的新的线程.创建线程必须指定新线程要执行的代码的起始地址.通常,起始地址是程序代码中定义的函数的名称(有关更多信息,请参阅ThreadProc).此函数采用单个 ...

最新文章

  1. 《Maven官方指南》指南第三方部署到远程仓库
  2. JAVA开发Web Service几种框架介绍
  3. Scala集合与Java集合的对比
  4. [flask]gunicorn配置文件
  5. php生成svg图片不显示,css svg不显示不出来怎么办
  6. Asp.Net基于forms的验证机制,记录一下...
  7. 两数相除 leetcode
  8. javaeye API
  9. Typora数学符号如何表示
  10. Ubuntu双显卡切换方法总结
  11. Linux TOP CPU %wa 值的理解
  12. 实时数仓在有赞的实践
  13. 计算机缓存设置方法,如何清除电脑缓存?清除电脑缓存方法介绍
  14. python深度学习include框架_《用Python实现深度学习框架》上市
  15. 高通平台ITS:scene2_a/test_effects fail
  16. 零基础转行,你要不要去编程培训班?
  17. 1051366-32-5,Balixafortide (POL6326),肽类 CXC chemokine receptor 4 (CXCR4) 的拮抗剂
  18. Java计算机毕业设计电影票网上订票系统源码+系统+数据库+lw文档
  19. aps是什么意思_APS系统是什么意思?起什么作用
  20. Windows资源监控工具大全

热门文章

  1. Android:Android SDK的下载与安装
  2. 浏览文件服务器,浏览文件服务器
  3. 履带式机器人运动模型及应用分析(图片版)
  4. linux 延展集群如何设置,OCaml 4.11.0 发布,将函数式语言 Caml 在面向对象上进行延展...
  5. oracle select机制_ORACLE的工作机制(转载)
  6. 洛谷——P1320 压缩技术(续集版)
  7. MySQL二十八规范数据库设计
  8. [sitemap 索引情况提示] 根据 sitemap 的规则[0],当前页面 [pages/loading/loading] 将被索引
  9. windows之解决VMware虚拟机经常性卡死
  10. python大小写转换_python字符串大小写转换