认识与创建线程
2014-05-07 10:36
531 查看
----------------------------------------------------------------------------------------
①、什么是多线程编程:
一边听音乐,一边上网;一边下载东西,一遍看电影,等等,都是多线程的功劳;
===================================================
②、线程与进程的关系:
线程是进程的可执行单元,是计算机分配CPU机时的基本单元。一个进程可以包含一个或多个线程,进程是通过线程去执行代码的。
同一个进程的多个线程共享该进程的资源和操作系统分配给该进程的内存空间。每个进程必须有一个主线程,主线程退出之后该进程也就退出了。
一个进程的主线程是由系统创建的。
在单CPU中,表面上看好像是多个进程中的多个线程共同执行,实际上是操作系统根据调度规则、依次的 将一个一个的线程可执行代码加载进CPU中执行的;
即,CPU在同一时刻只能执行一段代码,由于CPU的频率非常快,迅速的在各个线程间进行切换,所以给人的感觉就好像是多个线程共同执行。
不过在多核CPU的电脑中,确实是多个线程共同执行……
所以,通过多线程,一个进程的应用程序可以充分利用CPU资源,但什么事情都是物极必反,如果线程开的太多,系统就会增加额外的开销去进行线程的调度,
反而降低了CPU的使用效率。
③、使用 Spy++ 工具查看系统中当前的进程与线程!
===================================================
④、创建新线程的三种方式:
方式一:CreateThread(记得关闭线程句柄)
方式二:AfxBeginThread(会自动释放的,不用你去释放)
方式三:_beginthreadex(记得关闭线程句柄)
===================================================
⑤、几种方式创建线程的区别!
===================================================
①、什么是多线程编程:
一边听音乐,一边上网;一边下载东西,一遍看电影,等等,都是多线程的功劳;
===================================================
②、线程与进程的关系:
线程是进程的可执行单元,是计算机分配CPU机时的基本单元。一个进程可以包含一个或多个线程,进程是通过线程去执行代码的。
同一个进程的多个线程共享该进程的资源和操作系统分配给该进程的内存空间。每个进程必须有一个主线程,主线程退出之后该进程也就退出了。
一个进程的主线程是由系统创建的。
在单CPU中,表面上看好像是多个进程中的多个线程共同执行,实际上是操作系统根据调度规则、依次的 将一个一个的线程可执行代码加载进CPU中执行的;
即,CPU在同一时刻只能执行一段代码,由于CPU的频率非常快,迅速的在各个线程间进行切换,所以给人的感觉就好像是多个线程共同执行。
不过在多核CPU的电脑中,确实是多个线程共同执行……
所以,通过多线程,一个进程的应用程序可以充分利用CPU资源,但什么事情都是物极必反,如果线程开的太多,系统就会增加额外的开销去进行线程的调度,
反而降低了CPU的使用效率。
③、使用 Spy++ 工具查看系统中当前的进程与线程!
===================================================
④、创建新线程的三种方式:
方式一:CreateThread(记得关闭线程句柄)
方式二:AfxBeginThread(会自动释放的,不用你去释放)
方式三:_beginthreadex(记得关闭线程句柄)
===================================================
⑤、几种方式创建线程的区别!
===================================================
相关文章推荐
- 黑马程序员_八 【线程认识】【线程单例】【线程创建使用】
- vc 线程创建关闭
- 创建线程的三种方式对比(总结)
- 用C++11的std::async代替线程的创建
- Java线程创建模式
- 常见的创建线程安全单例模式的方法
- 如何在VC中利用系统函数创建一个新的线程
- [转]创建线程并传递参数--AfxBeginThread
- 线程的创建与启动
- android socket通信 创建线程接受 客户端
- 线程间操作无效: 从不是创建控件“txtreceive”的线程访问它。
- 创建线程后为什么马上调用CloseHandle()来关闭句柄
- java中创建线程的方法
- 2、线程的创建
- Java创建线程的细节分析
- Java创建线程的两个方法
- 嵌入式 Linux下线程的创建和启动
- 创建线程的第一种方式:继承Thread…
- Linux编程练习 --多线程1--线程创建
- 创建线程的方法二:实现 Runnable 接口