Win32多线程程序设计学习笔记 1
来源:互联网 发布:3dsmax软件 编辑:程序博客网 时间:2024/04/28 20:44
1.1创建多线程的函数
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes, //新线程的Security属性,NULL表示缺省
DWORD dwStackSize, //线程拥有自身堆栈大小 0默认表示1M
LPTHREAD_START_ROUTINE lpStartAddress, //新线程开始地址,函数的指针
LPVOID lpParameter, //新线程的参数
DWORD dwCreateFlags, //开始标志,默认为立即开始
LPWORD lpThread //新的线程ID,不需要可传入为空
)
如果该函数调用成功则返回一个Handle,调用失败则返回FALSE,可用GetLastError()获取原因
当CreateThread函数被调用时,CreateThread开启一个新的线程,该线程调用线程函数(LPTHREAD_START_ROUTINE),而原来的线程继续进行,即线程函数被异步的执行
int main(int argc, char* argv[])
{
HANDLE hThread[10];
DWORD ThreadID[10];
for (int i=0; i<10; i++)
{
hThread[i] = CreateThread(0,0,ThreadFunc,&i,0,ThreadID);
}
return 0;
}
DWORD WINAPI ThreadFunc(LPVOID n)
{
int *m = (int *)n;
cout<<*m<<endl;
return 0;
}
线程函数必须有以下特点
1.返回值为DWORD,
2.调用约定为WINAPI //__stacall
3.参数有且只有一个,并且为LPVOID类型
注意:
线程执行的次序无法保证,线程之间执行的次序可看为随机
context Switches(线程切换??)可以在任何时刻发生
线程对于小的改变有很高的敏感,在抢先式多任务调度中,每个线程被允许一个固定的timeslice(时间片),然后控制权就会转移.
线程并不总是立即启动
- Win32多线程程序设计学习笔记 1
- 《Win32多线程程序设计》学习笔记---(1)
- WIN32多线程程序设计学习笔记
- 学习笔记 -- Win32 多线程程序设计
- Win32多线程程序设计(侯捷翻译) 学习笔记1
- WIN32多线程程序设计学习笔记[转]
- WIN32多线程程序设计学习笔记[转]
- WIN32多线程程序设计学习笔记[转]
- WIN32多线程程序设计学习笔记[转]
- 《win32多线程程序设计》学习笔记一
- 《win32多线程程序设计》学习笔记二
- 《win32多线程程序设计》学习笔记三
- 《win32多线程程序设计》学习笔记四
- WIN32多线程程序设计学习笔记(第二章)
- WIN32多线程程序设计学习笔记(第三章)
- WIN32多线程程序设计学习笔记(第四章 上)
- WIN32多线程程序设计学习笔记(第六章 上)
- WIN32多线程程序设计学习笔记(第六章 下)
- 设计模式在Java数据库编程中的运用
- 一个男人的品位在于选择妻子
- Linux下常用的Ftp Server
- 无盘工作站
- mysql的一些语句总结
- Win32多线程程序设计学习笔记 1
- HTTP参考
- 做做日记工作缓解一下郁闷的心情
- 让windows2003更加亲切
- GoogleDesktop插件开发 – 序
- 为你的ASA瘦身
- 利用Repeater控件显示主-从关系数据表的方法
- Veritas Cluster Configuration
- VC 画图原理分析(双缓冲)