学习学习多线程编程,落入俗套。
2013-10-26 00:36
162 查看
写点多线程编程的程序吧,无论是后端还是什么都需要编写多线程程序的。我也来一个Threadpool落入俗套。
后天会把程序贴出来,未完待续。
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD
SIZE_T dwStackSize, // initial stack size
LPTHREAD_START_ROUTINE lpStartAddress, // thread function
LPVOID lpParameter, // thread argument
DWORD dwCreationFlags, // creation option
LPDWORD lpThreadId // thread identifier
);//参数
先写一个最简单的多线程 程序,记录一下线程的生成和执行。
#include <iostream>
#include <windows.h>
using namespace std;
DWORD WINAPI Fun(LPVOID lpParamter)
{
while(1) { cout<<"Fun display!\n"; Sleep(1000);}
}
int main()
{
HANDLE hThread = CreateThread(NULL, 0, Fun, NULL, 0, NULL);
CloseHandle(hThread);
while(1) { cout<<"main display!\n"; Sleep(2000);}
return 0;
}
增加Mutex加锁机制之后:
#include <iostream>
#include <windows.h>
using namespace std;
HANDLE hMutex;
DWORD WINAPI Fun(LPVOID lpParamter)
{
while(1) {
WaitForSingleObject(hMutex, INFINITE);
cout<<"Fun display!"<<endl;
Sleep(1000);
ReleaseMutex(hMutex);
}
}
int main()
{
HANDLE hThread = CreateThread(NULL, 0, Fun, NULL, 0, NULL);
hMutex = CreateMutex(NULL, FALSE, "screen");
CloseHandle(hThread);
while(1) {
WaitForSingleObject(hMutex, INFINITE);
cout<<"main display!"<<endl;
Sleep(2000);
ReleaseMutex(hMutex);
}
return 0;
}
后天会把程序贴出来,未完待续。
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD
SIZE_T dwStackSize, // initial stack size
LPTHREAD_START_ROUTINE lpStartAddress, // thread function
LPVOID lpParameter, // thread argument
DWORD dwCreationFlags, // creation option
LPDWORD lpThreadId // thread identifier
);//参数
先写一个最简单的多线程 程序,记录一下线程的生成和执行。
#include <iostream>
#include <windows.h>
using namespace std;
DWORD WINAPI Fun(LPVOID lpParamter)
{
while(1) { cout<<"Fun display!\n"; Sleep(1000);}
}
int main()
{
HANDLE hThread = CreateThread(NULL, 0, Fun, NULL, 0, NULL);
CloseHandle(hThread);
while(1) { cout<<"main display!\n"; Sleep(2000);}
return 0;
}
增加Mutex加锁机制之后:
#include <iostream>
#include <windows.h>
using namespace std;
HANDLE hMutex;
DWORD WINAPI Fun(LPVOID lpParamter)
{
while(1) {
WaitForSingleObject(hMutex, INFINITE);
cout<<"Fun display!"<<endl;
Sleep(1000);
ReleaseMutex(hMutex);
}
}
int main()
{
HANDLE hThread = CreateThread(NULL, 0, Fun, NULL, 0, NULL);
hMutex = CreateMutex(NULL, FALSE, "screen");
CloseHandle(hThread);
while(1) {
WaitForSingleObject(hMutex, INFINITE);
cout<<"main display!"<<endl;
Sleep(2000);
ReleaseMutex(hMutex);
}
return 0;
}
相关文章推荐
- JAVA学习笔记--4.多线程编程 part5.这些年的那些坑
- java网络编程学习之——构建基于多线程的网络通信模型1
- [学习随笔]并发编程与多线程二
- Qt 多线程和网络编程学习
- Linux下C语言的多线程编程学习[写得很好哦]
- Java多线程编程--(6)学习Java5.0 并发编程包--原子操作的一些类型
- IOS学习笔记51--多线程编程之GCD
- 从零学习linux多线程编程--第一篇
- iOS-多线程编程学习之pthread创建线程(二)
- Java6学习笔记60——多线程编程——使用volatile保障原子性
- 关于网络编程架构的初步学习,多线程编程。
- iOS-多线程编程学习之GCD——串行队列和并发队列(五)
- [原]Java多线程编程学习笔记之六:使用synchronized获取互斥锁的几点说明
- 《Java 多线程编程核心技术》学习笔记及总结
- Java多线程编程--(10)学习Java5.0 并发编程包--线程工具类
- java socket编程(也是学习多线程的例子)详细版----转
- python 多线程编程和学习(threading 例子)
- ASP.NET温故而知新学习系列之ASP.NET多线程编程—.NET下的多线程编程利用thread.Start()传递参数(四)
- Java学习笔记-----------套接字编程-----多线程 及控制最大连接数
- C++:多线程编程学习:利用多线程进行归并排序。