博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c语言下多线程
阅读量:5086 次
发布时间:2019-06-13

本文共 1437 字,大约阅读时间需要 4 分钟。

原文:

【问题】创建了10个线程,10个线程公用一个线程体,创建如下:
int t1=0,t2=1,t3=2,t4=3,t5=4,t6=5,t7=6,t8=7,t9=8,t10=9; int *one=&t1,*two=&t2,*three=&t3,*four=&t4,*five=&t5,*six=&t6,*seven=&t7,*eight=&t8,*nine=&t9,*ten=&t10;
   thread[3]=CreateThread(NULL,0,processQueue,one,0,NULL);
thread[4]=CreateThread(NULL,0,processQueue,two,0,NULL);
thread[5]=CreateThread(NULL,0,processQueue,three,0,NULL);
thread[6]=CreateThread(NULL,0,processQueue,four,0,NULL);
thread[7]=CreateThread(NULL,0,processQueue,five,0,NULL);
thread[8]=CreateThread(NULL,0,processQueue,six,0,NULL);
thread[9]=CreateThread(NULL,0,processQueue,seven,0,NULL);
thread[10]=CreateThread(NULL,0,processQueue,eight,0,NULL);
thread[11]=CreateThread(NULL,0,processQueue,nine,0,NULL);
thread[12]=CreateThread(NULL,0,processQueue,ten,0,NULL);
DWORD WINAPI processQueue(LPVOID lp)
{
//注意,读队列的时候,一定要free空间。
int i=*((int *)lp);
printf(" %d\n",i);
return 0;
}
按照正常的思维来说,这个显示的结果应该是从0-9(当然顺序可能有变化),但是不明原因,显示的时候,本来应该调用10次,但是却会显示11,12,13 次等不稳定结果【比如:2 1 0 3 5 4 6 6 4 7 8 9】,就是因为这个问题,俺跟杨哥搞了整整一天,直接摸不着头脑,臻哥还有508的伙也是对它没辙……
记得以前见过,在使用windows类库的前提下,c语言提供了两种多线程的方法,一种是CreateThread,另外一种是_beginthreadex.不然就换一种方法吧。
于是跑到508借了一本c编程,仔细看了一下_beginthreadex函数,它说默认情况下vc++中的c/c++运行期库不支持该函数,因为标准c中运行期库是没有多线程的概念。所以,我们必须对vc进行设置。
project--setting->c/c++->的Category对应的组合框中选择Code Generation类别,从user run-time library组合狂中选择Multithreaded DLL就可以了。
c语言下多线程
posted on
2014-12-12 16:12 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/4159944.html

你可能感兴趣的文章
图解 HTTP 笔记(二)——简单的 HTTP 协议
查看>>
AcWing:173. 矩阵距离(bfs)
查看>>
C# 正则表达式
查看>>
Spring Cloud 入门教程(四): 分布式环境下自动发现配置服务
查看>>
Spring Cloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务
查看>>
Spring Cloud 入门教程(一): 服务注册
查看>>
【2.2】创建博客文章模型
查看>>
【3.1】Cookiecutter安装和使用
查看>>
【2.3】初始Django Shell
查看>>
Linux(Centos)之安装Redis及注意事项
查看>>
正则表达式总结
查看>>
JavaWeb之Servlet的生命周期
查看>>
maven学习
查看>>
程序4-3 umask函数实例
查看>>
GitHub上那些值得一试的JAVA开源库
查看>>
linux 删除暂时无用内容
查看>>
centos 7 删除 virbr0 虚拟网卡virsh net-list
查看>>
Wireshark分析DHCP
查看>>
vue/npm 错误提示&解决
查看>>
可变集合的方法
查看>>