C/C++中的多线程入门
来源:互联网 发布:发票数据实时上传功能 编辑:程序博客网 时间:2024/06/13 08:53
作者:秋镇菜
运行多线程程序时,将Project->Property->c/c++->Code generation ->RunTime Library 改为多线程
#include <Windows.h>
#include <stdio.h>
#include <process.h>
#pragma comment(lib,"libcmt.lib")
const int NLOOP = 10;
int counter = 0;
void doit(void*);
CRITICAL_SECTION beswap ;
int main()
...{
HANDLE pnt[2];
InitializeCriticalSection(&beswap);
pnt[0] = (HANDLE)_beginthread(doit,0,NULL);
pnt[1] = (HANDLE)_beginthread(doit,0,NULL);
WaitForMultipleObjects( 2, pnt, TRUE, 1000L);
DeleteCriticalSection(&beswap);
return 0;
}
void doit(void*)
...{
printf("go... ");
int i, val = 0;
for(i = 0; i < NLOOP; ++i)
...{
EnterCriticalSection(&beswap);
val = counter;
printf("%d ",val+1);
counter = val + 1;
LeaveCriticalSection(&beswap);
}
printf("end... ");
return ;
}
#include <stdio.h>
#include <process.h>
#pragma comment(lib,"libcmt.lib")
const int NLOOP = 10;
int counter = 0;
void doit(void*);
CRITICAL_SECTION beswap ;
int main()
...{
HANDLE pnt[2];
InitializeCriticalSection(&beswap);
pnt[0] = (HANDLE)_beginthread(doit,0,NULL);
pnt[1] = (HANDLE)_beginthread(doit,0,NULL);
WaitForMultipleObjects( 2, pnt, TRUE, 1000L);
DeleteCriticalSection(&beswap);
return 0;
}
void doit(void*)
...{
printf("go... ");
int i, val = 0;
for(i = 0; i < NLOOP; ++i)
...{
EnterCriticalSection(&beswap);
val = counter;
printf("%d ",val+1);
counter = val + 1;
LeaveCriticalSection(&beswap);
}
printf("end... ");
return ;
}
- C/C++中的多线程入门
- C/C++中的多线程入门
- C/C++中的多线程入门
- C/C++中的多线程入门源码
- C/C++ 多线程入门
- C++builder 中的多线程
- c中的多线程详解
- C++多线程入门
- C#UI多线程编程入门
- C语言中的多线程编程
- C语言中的多线程编程
- 理解多线程中的ManualResetEvent(C#)
- C++/CLR 中的多线程使用方法
- C语言中的多线程编程
- C#Thread类多线程系列(一)入门
- Linux-(C)多线程学习(入门)
- vs2005 中的多线程(c#),可带参数
- 【C#】多线程中的lock与token模式
- Java中的I/O操作(一)
- C#实现功能--杀死机器上某个进程
- mysql 新安装时的权限
- 为什么IE浏览器不能运行Java Applet小程序?
- VC小技巧20个
- C/C++中的多线程入门
- mfc常用方法
- 电视剧房前屋后剧情介绍第1-47集
- 多行数据转化为一行!
- shell 基础知识(转)
- Session配置
- 开始学习C#
- Testing 中文
- 关于测试的绩效考核