1、CreateThread 在主线程的基础上创建一个新线程

2、WaitForMultipleObjects 主线程等待子线程

3、CloseHandle 关闭线程

  1. // testThread.cpp : 定义控制台应用程序的入口点。
  2.  
  3. #include "stdafx.h"
  4. #include "windows.h"
  5.  
  6. #define MAX_THREADS 3
  7.  
  8. //子线程函数
  9. DWORD WINAPI ThreadFun(LPVOID pM)
  10. {
  11. printf("\n我是子线程:%d\n",pM);
  12. printf("子线程的线程ID号为:%d\n", GetCurrentThreadId());
  13. return ;
  14. }
  15.  
  16. int _tmain(int argc, _TCHAR* argv[])
  17. {
  18. printf("我是主线程\n");
  19.  
  20. //HANDLE handle = CreateThread(NULL, 0, ThreadFun, NULL, 0, NULL);
  21. //WaitForSingleObject(handle, INFINITE);
  22.  
  23. HANDLE hThread[MAX_THREADS];
  24. int i;
  25. for(i = ; i < MAX_THREADS; i++){
  26. hThread[i] = CreateThread(NULL, , ThreadFun,(LPVOID *) i, , NULL); //创建多线程
  27. }
  28. if(hThread[i]==NULL)
  29. {
  30. ExitProcess(i);//退出进程
  31. }else{
  32. printf("hThread:,%d\n",hThread[i]);
  33. }
  34.  
  35. WaitForMultipleObjects(MAX_THREADS,hThread,TRUE,INFINITE);//主线程等待子线程结束
  36.  
  37. for(i = ; i < MAX_THREADS; i++){
  38. CloseHandle(hThread[i]);//关闭线程
  39. }
  40.  
  41. return ;
  42. }

测试结果如下:

C语言 多线程测试的更多相关文章

  1. 转载~kxcfzyk:Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解

    Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解   多线程c语言linuxsemaphore条件变量 (本文的读者定位是了解Pthread常用多线程API和Pthread互斥锁 ...

  2. Junit使用GroboUtils进行多线程测试

    写过Junit单元测试的同学应该会有感觉,Junit本身是不支持普通的多线程测试的,这是因为Junit的底层实现上,是用System.exit退出用例执行的.JVM都终止了,在测试线程启动的其他线程自 ...

  3. C 语言多线程与锁机制

    C 语言多线程与锁机制 多线程 #include <pthread.h> void *TrainModelThread(void *id) { ... pthread_exit(NULL) ...

  4. linux下C语言多线程编程实例

    用一个实例.来学习linux下C语言多线程编程实例. 代码目的:通过创建两个线程来实现对一个数的递加.代码: //包含的头文件 #include <pthread.h> #include ...

  5. testng入门教程12 TestNG执行多线程测试

    testng入门教程 TestNG执行多线程测试 testng入门教程 TestNG执行多线程测试 并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者 ...

  6. 嵌入式C语言自我修养 13:C语言习题测试

    13.1 总结 前面12节的课程,主要针对 Linux 内核中 GNU C 扩展的一些常用 C 语言语法进行了分析.GNU C 的这些扩展语法,主要用来完善 C 语言标准和编译优化.而通过 C 标准的 ...

  7. 关于JUnit4无法支持多线程测试的解决方法

    转自:https://segmentfault.com/a/1190000003762719 其实junit是将test作为参数传递给了TestRunner的main函数.并通过main函数进行执行. ...

  8. TestNG多线程测试-注解方式实现

    用@Test(invocationCount = x,threadPoolSize = y)声明,invocationCount表示执行次数,threadPoolSize表示线程池大小. packag ...

  9. tp实现多语言支持测试

    用tp框架实现网页多种语言切换 时间:2016-11-11 浏览次数:1120 编辑:youjiejie   网页如何设计多种语言切换,本文用tp框架实现网页多种语言切换方法结合实例形式较为详细的分析 ...

随机推荐

  1. 【前端】移动端Web开发学习笔记【1】

    下一篇:移动端Web开发学习笔记[2] Part 1: 两篇重要的博客 有两篇翻译过来的博客值得一看: 两个viewport的故事(第一部分) 两个viewport的故事(第二部分) 这两篇博客探讨了 ...

  2. 为listview的item添加动画效果

    //动画集合 AnimationSet animationSet = new AnimationSet(true); //alpha动画 Animation animation = new Alpha ...

  3. 我的git学习

    当遇到不想commit的,而status已经现实出来了,可以使用 git rm -r --cached "fine name or 文件夹" 出现   Git – fatal: U ...

  4. [linux] 指令记录

    1> 查看linux版本号 lsb_release -a cat /etc/redhat-release

  5. 动态加载框架DL分析

    动态加载框架DL分析 插件化开发,主要解决三个问题1.动态加载未安装的apk,dex,jar等文件2.activity生命周期的问题,还有service3.Android的资源调用的问题 简单说一下怎 ...

  6. SAP ERP和ORACLE ERP的区别是哪些?

    SAP有非常细致深入的标准流程,在流程方面,只要是你想到的问题,SAP都会曾经遇到过并且给出过解决方案.实施SAP比较倾向于改变企业的业务流程来匹配SAP,实现标准化管理. oracle比较灵活,侧重 ...

  7. FirstUniqueCharacterInString

    Given a string, find the first non-repeating character in it and return it's index. If it doesn't ex ...

  8. 程序设计入门——C语言 第6周编程练习 1 分解质因数(5分)

    1 分解质因数(5分) 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. ...

  9. apt-get 与 yum 的区别

    一般来说著名的 linux 系统基本上分两大类: RedHat系列:Redhat.CentOS.Fedora等 Debian系列:Debian.Ubuntu等 RedHat 系列 1 常见的安装包格式 ...

  10. Pod(转)

    一.CocoaPods的安装 (1)使用淘宝的Ruby镜像替换官方的ruby源,在终端输入命令 $ gem sources --remove https://rubygems.org/ $ gem s ...