如今是一个多核CPU的时代,多核CPU也就是同时能运行多个进程,这也就实现了并发编程。通过多进程来实现并发编程,效果是挺好的,但也有明显的缺点。创建、调度、销毁一个进程,就会有一定的系统开销,比如申请内存,分配内存,释放内存等,会消耗许多时间和资源,效率不高。因此,为了提高电脑的性能,人们就引入了多线程,同样可以实现并发编程。通过多线程的方式,系统的开销比多进程要小得多。那么,多进程和多线程有什么区别呢?
(1)进程包含线程,一个进程包含一个或多个线程。
(2)多进程,各个进程之间相互独立,不相互影响,一个进程的销毁不会影响其他进程的运行。
而多线程,一个进程包含一个或多个线程,某个线程出现异常,可能会影响其他线程的运行(线程安全问题)。
(3)每创建一个进程,操作系统都会为每一个进程分配资源(内存,硬盘,CPU等资源),即每个进程独占系统资源。而对于多线程,一个进程包含多个线程,多个线程共用此进程的内存和硬盘资源,创建线程不需要额外申请内存和硬盘资源,节省了一定的系统开销。
(4)进程是系统资源分配的基本单位,线程是系统调度执行的基本单位。
(5)多进程和多线程都可以实现并发编程,但多线程更轻量,系统开销更小,效率更高。