c++多线程编程初探
初步实例介绍CreateThread的用法:
#include "windows.h"
#include "stdio.h"
void Scan(char* str)
{
printf("%s",str);
}
void Start()
{
char* s="NBA YAO YEAR!\n";
HANDLE hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Scan,s,0,NULL);
if(CloseHandle(hThread))
{
printf("\nClose Thread Success!\n");
}
else
{
printf("\nClose Thread Failed!");
}
}
void main()
{
int i=0;
for(;i<10;i++)
{
Start();
}
/*参数说明:
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,//必须为NULL
DWORD dwStackSize, //一般为0 ,表示堆栈与外部大小相同
LPTHREAD_START_ROUTINE lpStartAddress, //线程函数名称
LPVOID lpParameter, //传递给线程函数的参数,如果为多个,自定义结构体
DWORD dwCreationFlags,//0表示创建线程后立即启动线程,如果不是立即启动需要调用ResumeThread函数
LPDWORD lpThreadId); //用来标记该线程的名称
*/
}
http://www.bokee.net/dailymodule/blog_view.do?id=128539
c++ 多线程编程 CreatThread
悬赏分:5 - 解决时间:2009-3-25 16:22
如何使用CreatThread编多线程的程序?给个小例子吧?
提问者: jnncumt - 见习魔法师 二级 最佳答案#include "windows.h"
#include <iostream.h>
int num = 100; //模拟售票系统,共100张票
DWORD WINAPI Fun1(LPVOID lpParameter)
{
while (num != 0)
{
cout<<"Fun1: "<<num<<endl;
num -= 1;
Sleep(500);
}
return 0;
}
DWORD WINAPI Fun2(LPVOID lpParameter)
{
while (num != 0)
{
cout<<"Fun2: "<<num<<endl;
num -= 1;
Sleep(500);
}
return 0;
}
void main()
{
HANDLE thread1;
HANDLE thread2;
thread1=CreateThread(NULL,0,Fun1,NULL,0,NULL);
thread2=CreateThread(NULL,0,Fun2,NULL,0,NULL);
while (num != 0)
{
cout<<"main: "<<num<<endl;
num -= 1;
Sleep(1000);
}
Sleep(3000); //3s后关闭线程
CloseHandle(thread1);
CloseHandle(thread2);
}
分享到:
相关推荐
c++多线程编程初探 HANDLE thread1; HANDLE thread2; thread1=CreateThread(NULL,0,Fun1,NULL,0,NULL); thread2=CreateThread(NULL,0,Fun2,NULL,0,NULL);
45 <br/>Visual C++ 5.0中的多线程编程技术... 50 <br/>关于线程... 62 <br/>采用多线程进行数据采集... 64 <br/>循环创建多线程时保证参数的有效性... 67 <br/>MFC中多线程的应用... 70 ...
Linux 程序员都用过 Pthread, 但有了 C++11 的 std::thread 以后,你可以在语言层面编写多线程程序了,直接的好处就是多线程程序的可移植性得到了很大的提高,所以作为一名 C++ 程序员,熟悉 C++11 的多线程编程方式...
27_C++面向对象模型初探_传智扫地僧 28_this指针 29_作业 源码及文档 01_上一次课程回顾 02_const修饰的是谁_传智扫地僧 03_this的const修饰课堂答疑 04_全局函数pk成员函数(返回元素,引用,星号this) 05_强化...
4.2.6 多项选择(CheckBox) 4.2.7 下拉列表(Spinner) 4.2.8 自动提示(AutoComplete.TextⅥew) 4.2.9 日期和时间(DatePicker、TimePicker) 4.2.10 按钮(Button) 4.2.1l 菜单(Menu) 4.2.12 对话框(Dialog...
4.2.6 多项选择(CheckBox) 4.2.7 下拉列表(Spinner) 4.2.8 自动提示(AutoComplete.TextⅥew) 4.2.9 日期和时间(DatePicker、TimePicker) 4.2.10 按钮(Button) 4.2.1l 菜单(Menu) 4.2.12 对话框(Dialog) 4.2.13 图片...
4.2.6 多项选择(CheckBox) 4.2.7 下拉列表(Spinner) 4.2.8 自动提示(AutoComplete.TextⅥew) 4.2.9 日期和时间(DatePicker、TimePicker) 4.2.10 按钮(Button) 4.2.1l 菜单(Menu) 4.2.12 对话框(Dialog...
4.2.6 多项选择(CheckBox) 4.2.7 下拉列表(Spinner) 4.2.8 自动提示(AutoComplete.TextⅥew) 4.2.9 日期和时间(DatePicker、TimePicker) 4.2.10 按钮(Button) 4.2.1l 菜单(Menu) 4.2.12 对话框(Dialog) 4.2.13 图片...
C++ 泛型编程系列讲座之实施 泛型技巧系列:简单类型选择器 C# 泛型简介 我眼中的C#2.0新功能特性 泛型技巧系列:避免基类及接口约束 New Article 不该用Generics实现Abstract Factory的理由 C#2.0-泛型 C#2.0-...