(四十二)什么是线程?它与进程有什么区别?为什么要使用多线程

关系: 

区别: 

 

 

线程:又称为“轻量级进程”,是操作系统能够进行运算调度的最小单位,被包含在进程中,是进程中实际运行单位。

进程:系统进行资源分配和调度的基本单位。

进程与线程区别:

  • 进程是资源分配的最小单位,线程是程序执行的最小单位
  • 进程创建与切换:进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,创建一个线程的开销也比进程要小很多,CPU切换一个线程的花费远比进程要小很多。
  • 线程通信:线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。
  • 进程死掉与线程死掉区别:但是多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也死掉了,而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。

线程好处:

①使用线程可以减少程序的响应时间。

单线程:程序执行过程中只有一个有效操作的序列,不同操作之间都有明确的执行先后顺序。

如果某个操作很耗时或陷入长时间的等待(如等待网络响应),此时程序将不会响应鼠标和键盘灯操作。

使用多线程后,可以把这个耗时的线程分配到一个单独的线程去执行,从而使程序具备了更好的交互性。

②与进程相比,线程的创建和切换开销更小

线程共享代码段、数据段,线程的启动或切换的开销比进程要少很多。

③多CPU或多核计算机本身就具有执行多线程的能力

④使用多线程能简化程序的结构,使程序便于理解和维护。一个非常复杂的进程可以分成多个线程来执行

posted @ 2019-03-04 14:56  测试开发分享站  阅读(280)  评论(0编辑  收藏  举报