线程和进程的主要区别是:他们是操作系统不同的管理系统资源的方式。进程拥有独立的地址空间,一个进程崩溃后,在保护模式下不会对其他的进程造成任何的影响,而线程只是进程不同的执行路径而已。线程有自己的堆栈和局部变量,但是线程没有独立的地址空间。通常可以将线程看成是一个轻量级的进程。
在cpu 的调度方面,线程是调度的基本单位。并且线程的调度是比较轻量级的,提高了系统的并发性能。同一进程中的线程调度不会引起进程的调度,但是不同进程之间的线程切换还是会引起进程的切换的。
在执行过程来看,进程拥有独立的内存单元,同一进程下的线程可以共享改内存区域,提高了运行效率。
从逻辑角度来看:(重要区别)多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但是,操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理及资源分配。