[关闭]
@songying 2018-10-04T22:00:10.000000Z 字数 636 阅读 972

谈谈对线程的理解

操作系统

什么是多线程

多线程可谓是为多任务而生,虽然多进程也是能够解决多任务问题,但是由于进程分配所占据的资源较多,且进程间通信并不是很方便。于是多线程作为另一方案,即解决了资源问题,也缓解了通信问题。

简单来说,多线程指的是操作系统在单个进程内支持多个并发执行路径的能力。

线程与进程的区别

进程和线程的主要差别在于它们是不同的操作系统资源管理方式。

  • 进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响.
  • 线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。

对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

  • 一个程序至少有一个进程,一个进程至少有一个线程.
  • 线程的划分尺度小于进程,使得多线程程序的并发性高。
  • 进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
  • 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
  • 从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

线程状态

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注