一、线程概念(Thread)
- 线程是可由CPU直接运行的实体
- 一个进程内部可创建多个线程
- 多个线程共享CPU可以实现并发运行
线程的并发程度要比进程更细
windows的CreateThread()
功能:把一个函数创建为一个进程
HANDLE CreateThread (LPSECURITY_ATTRIBUTES lpThreadAttributes,DWORD dwStackSize,LPTHREAD_ROUTINE ThreadFunction//线程函数,LPVOID lpParameter//线程函数参数)
线程函数的原型
DWORD ThreadFunction(LPVOID lpParameter//参数)
单线程程序和多线程程序
单线程程序:整个进程只有一个线程。windows程序缺省只有一个线程(主线程,main线程)
多线程程序:整个线程至少有两个线程。主线程和至少一个用户线程
二、典型应用场景
1、程序的多个功能需要并发运行
2、提高窗口程序的交互性(后台运算与前端交互操作分为两个线程进行执行)
3、需要改善程序结构的地方
4、多喝CPU上的应用,充分发挥多核性能
创建线程:
Win32库创建线程:CreateThread (线程函数,参数)
MFC创建线程:AfxBeginThread(线程函数,参数)
创建远程线程:CreateRemoteThread (进程,线程函数,参数)
LInux创建线程:pthread_create(线程函数,参数)
使用线程的麻烦
- 程序难以调试
- 线程安全问题
- 并发过程难以控制