一,定义
进程:是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。
• 进程是系统进行资源分配和调度的一个基本单位。
• 是系统中的并发执行的单位。
线程:是进程的一个实体,单个进程中执行中每个任务就是一个线程。
• 线程是进程中执行运算的最小单位。
• 线程基本不拥有系统资源,拥有自己的栈空间,它与同属一个进程的其他线程共享进程所拥有的全部资源。
• 一个线程可以创建和撤销另一个线程。
• 同一个进程中的多个线程之间可以并发执行。
二,区别:
• 进程和线程的主要差别在于他们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其他进程产生影响,线程只是一个进程中的不同执行路径,有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。
• 一个程序至少有一个进程,一个进程至少有一个线程。
• 一个线程只能属于一个进程,但是一个进程可以拥有多个线程。多线程处理就是允许一个进程中在同一时刻执行多个任务。
• 线程是一种轻量级的进程,与进程相比,线程给操作系统带来侧创建、维护、和管理的负担要轻,意味着线程的代价或开销比较小。
• 线程执行开销小,但不利于资源的管理和保护。
• 父和子进程使用进程间通信机制,同一进程的线程通过读取和写入数据到进程变量来通信。
• 子进程不对任何其他子进程施加控制,进程的线程可以对同一进程的其它线程施加控制。子进程不能对父进程施加控制,进程中所有线程都可以对主线程施加控制。
参考链接:
https://blog.csdn.net/horacehe16/article/details/80821273
https://www.jianshu.com/p/36776be32253
网友评论