多线程之一:简单多线程
2016-01-19 23:06
239 查看
创建一个XXX.cpp 文件
/*
简单的多线程运行Demo
Fuction : 使用Windows API函数创建线程,因此需要包含windows.h文件
作者:红叶骑士
时间:2016-1-19
*/
#include <windows.h> //
#include <iostream>
using namespace std;
DWORD WINAPI FUN1Proc(LPVOID lpParameter);//申明线程1
DWORD WINAPI FUN2Proc(LPVOID lpParameter);//申明线程2
void main()
{
HANDLE hThread1, hThread2;
hThread1 = CreateThread(NULL, 0, FUN1Proc, NULL,0, NULL);
hThread2 = CreateThread(NULL, 0, FUN2Proc, NULL,0, NULL);
CloseHandle(hThread1);//关闭线程1句柄
CloseHandle(hThread2);//关闭线程2句柄
cout<<"main thread is running"<<endl;
system("pause");
}
//线程1的入口函数
DWORD WINAPI FUN1Proc(LPVOID lpParameter)
{
cout<<"thread1 is running"<<endl;
return 0;
}
//线程2的入口函数
DWORD WINAPI FUN2Proc(LPVOID lpParameter)
{
cout<<"thread2 is running"<<endl;
return 0;
}
小结:
一个复杂的工程里面会有很多个小的工程,代码量有几万乃至几十万,但用到的只不过是一些第三方库、自定义库、最主要的还是基本的知识。最近一个月出现一个问题,在桌面应用程序中刷新子对话框内容会出现闪烁现象,后来发现可能是在主线程中是刷新子对话框内容,这样加重主线程的重量,所以这个时候就需要创建子线程来处理。
/*
简单的多线程运行Demo
Fuction : 使用Windows API函数创建线程,因此需要包含windows.h文件
作者:红叶骑士
时间:2016-1-19
*/
#include <windows.h> //
#include <iostream>
using namespace std;
DWORD WINAPI FUN1Proc(LPVOID lpParameter);//申明线程1
DWORD WINAPI FUN2Proc(LPVOID lpParameter);//申明线程2
void main()
{
HANDLE hThread1, hThread2;
hThread1 = CreateThread(NULL, 0, FUN1Proc, NULL,0, NULL);
hThread2 = CreateThread(NULL, 0, FUN2Proc, NULL,0, NULL);
CloseHandle(hThread1);//关闭线程1句柄
CloseHandle(hThread2);//关闭线程2句柄
cout<<"main thread is running"<<endl;
system("pause");
}
//线程1的入口函数
DWORD WINAPI FUN1Proc(LPVOID lpParameter)
{
cout<<"thread1 is running"<<endl;
return 0;
}
//线程2的入口函数
DWORD WINAPI FUN2Proc(LPVOID lpParameter)
{
cout<<"thread2 is running"<<endl;
return 0;
}
小结:
一个复杂的工程里面会有很多个小的工程,代码量有几万乃至几十万,但用到的只不过是一些第三方库、自定义库、最主要的还是基本的知识。最近一个月出现一个问题,在桌面应用程序中刷新子对话框内容会出现闪烁现象,后来发现可能是在主线程中是刷新子对话框内容,这样加重主线程的重量,所以这个时候就需要创建子线程来处理。
相关文章推荐
- 代理设计模式之安卓中的实际应用
- android 友盟分享一直返回分享取消
- shiro 授权
- 快速排序java版
- 文件加解密—解密版
- Java中的装箱,拆箱详解
- ASP.NET Web API中通过ETag实现缓存
- memcached源码分析-----item过期失效处理以及LRU爬虫
- 寒假比赛训练(持续更新)
- 自己手写使用python爬取糗事百科段子
- iOS 页面间几种传值方式(属性,代理,block,单例,通知)
- 不同区域控制器名称相同出错的解决方法(备忘)
- Activity切换动画overridePendingTransition
- CSS3网格布局基础知识 - 弹性尺寸的定义单位:fr 简介及实例
- android144 360 快捷方式
- 89. cURL
- Hibernate 分页查询
- Verilog杂谈
- Java接口与抽象类的区别
- HDU 1160 FatMouse's Speed