C++实现的一个简单的多线程程序
来源:互联网 发布:淘宝店铺装修设计论文 编辑:程序博客网 时间:2024/06/07 03:44
#include <stdio.h>
#include <windows.h>
#include <process.h>
#include <stdlib.h>
LONG gCurThreadNum = 0;
int gThinkTime = 0;
bool gStop = false;
bool Connect()
{
return true;
}
bool Send()
{
return true;
}
UINT WINAPI ThreadProc( void* param )
{
Sleep( 100 );
// 发送数据
while( !gStop )
{
printf( "Test............./n" );
// 请在此处实现发送的处理
//..........
Sleep( gThinkTime );
}
// 线程退出
InterlockedDecrement(&gCurThreadNum);
return 0;
}
// 启动线程
void Start( int threadNum, int thinkTime )
{
gStop = false;
gThinkTime = thinkTime;
for ( int i=0; i<threadNum; i++ )
{
UINT threadId = 0;
HANDLE hThread = (HANDLE)_beginthreadex( NULL, 0, ThreadProc, NULL, 0, &threadId );
if ( hThread )
{
printf( "第%2d个线程启动成功。/n", i );
InterlockedIncrement(&gCurThreadNum);
}
else
{
printf( "第%2d个线程启动失败。/n", i );
}
}
}
// 停止线程
void Stop()
{
gStop = true;
while ( gCurThreadNum > 0 )
{
Sleep( 100 );
}
}
int main( int argc, char** argv )
{
printf( "车联网服务端测试程序运行中[Q/q+回车退出]:/n" );
int threadNum = 2; // 线程数
int thinkTime = 1000; // 思考时间
if ( argc<2 )
{
printf( "输入的参数不完整,使用默认参数:线程数[2 个线程] 思考时间[1000 毫秒]。/n" );
}
else
{
if ( threadNum < 0 )
{
threadNum = 2;
}
if ( thinkTime < 10 )
{
thinkTime = 1000;
}
}
// 启动线程
Start( threadNum, thinkTime );
// 提示
printf( "当前运行了线程数为:%d 个/n", gCurThreadNum );
printf( "每个线程思考时间为:%d 毫秒/n", gThinkTime );
// 挂起
while( true )
{
char ret = getchar();
if ( ret == 'q' || ret == 'Q' )
{
// 停止线程
Stop();
break;
}
}
// 线程退出
printf( "测试停止。/n" );
getchar();
return 0;
}
- C++实现的一个简单的多线程程序
- C语言实现的一个简单的HTTP程序
- C语言实现的一个简单的HTTP程序
- C语言实现的一个简单的HTTP程序
- C语言实现的一个简单的HTTP程序
- C语言实现的一个简单的HTTP程序
- C语言实现的一个简单的HTTP程序
- C语言实现的一个简单的HTTP程序
- 一个简单的C程序
- 一个简单的C程序
- MAC COCOA一个简单的多线程程序
- 一个简单c语言windows程序的实现
- 一个简单的Android程序,JNI实现Native C/C++
- 一个简单的C/C++多线程
- Java多线程实现简单的售票程序
- 一个简单多线程爬虫的实现
- 一个比较简单的 newFixedThreadPool多线程实现
- 多线程实现的一个小程序
- WM AlphaBlend
- 整天无所事事
- 企业如何规划和实施知识管理系统
- 我在 CSDN 的第一篇 person Log
- 记一次清理"360U盘安全保护.exe"病毒
- C++实现的一个简单的多线程程序
- Java操作word模板文件
- shell编程报错:“syntax error near unexpected token `”
- Mysql日期和时间函数不求人
- Windows下cmd命令一些注意事项
- 关于FileZilla 连接公司FTP乱码问题的处理
- ListView 表格动态设置控件宽度
- window.dialogArguments,showModalDialog()的用法
- RabbitVCS:Linux下的TortoiseSVN,ubuntu下安装方法