鱼C论坛

 找回密码
 立即注册
查看: 2708|回复: 6

[技术交流] 多线程简单例子

[复制链接]
发表于 2015-2-22 21:23:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.png
<P> </P>
<DIV class=blockcode>
<BLOCKQUOTE>
<P>[hide] </P>
<DIV class=blockcode>
<BLOCKQUOTE>
<DIV class=blockcode>
<BLOCKQUOTE>
<P>#include "windows.h"</P>
<P>#include "stdio.h"
#define 线程数目 10 //可以自己修改
/* 变量 */
HANDLE *线程句柄 = NULL;
HANDLE 互斥对象 = NULL;
int 测试 = 1;

/* 函数声名 */

void 线程函数(int 序号);
int _tmain(int argc, _TCHAR* argv[])
{
printf("多线程示例(互斥对象) By::迷雾少年\n");


/* 分配内存 ... */
线程句柄 = new HANDLE [线程数目];
//互斥对象 = new HANDLE [线程数目];

/*初始化=好习惯=*/
memset(线程句柄,0,线程数目 * sizeof(HANDLE));

互斥对象 = ::CreateMutex(NULL,false,NULL);
for (int i = 0; i < 线程数目; i++)
{
/* 创建线程 */ //返回值:函数成功,返回线程句柄;函数失败返回false。若不想返回线程ID,设置值为NULL
线程句柄[i] = ::CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)线程函数,(LPVOID)i,NULL,NULL);
/* 判断线程句柄 */
if(!线程句柄[i]) /*创建失败*/
printf("%d 号线程创建失败! 错误代码:%d\n",i,::GetLastError());

}

Sleep(2000);




/* 清除内存...... */
delete []线程句柄;

return 0;
}

/*不解释*/

void 线程函数(int 序号)
{
DWORD 等待结果 = NULL;

等待结果 = WaitForSingleObject(互斥对象,INFINITE); //等待..............


printf("%d号线程\n",序号);



if(!ReleaseMutex(互斥对象)) //释放...
printf("Release error\n");

}</P>

[/hide]

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-2-22 21:23:52 | 显示全部楼层
2楼自坐!!!!!!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-22 23:26:05 | 显示全部楼层
支持啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-23 09:39:06 | 显示全部楼层
要是有讲解就更好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-23 10:00:10 | 显示全部楼层
不错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-4-29 17:04:18 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-5-12 23:17:10 | 显示全部楼层
谢谢楼主分享,收了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 23:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表