因为这些概念我从开始接触计算机就有点混淆不清,可能大家也会和我有相同的感觉,所以整理一下我理解的这几者的区别,和定义,希望可以帮助到大家,当然不一定正确,但我相信一定会管用。
进程
进程:是正在执行的一个程序(软件)或者命令,每一个进程都是一个运行的实体都有自己的地址空间,并且占用一定的系统资源。说白了进程就是正在运行着的程序,只要运行就会产生至少一个进程。
为什么说只要程序运行就至少会产生一个进程呢?:就是说这个程序是共享的,而并非是同步的,程序可以被多次使用但是互不影响,比如Word创建一个文档,也可以创建多个文档
每一个文档打开并且编辑,就是一个Word进程、电脑扣扣可以打开多次,上不同的号,每一个号之间没有联系,每一个号就是一个进程,所以有多个扣扣进程,apache服务,可能被多个客户端使用,为了保证资源的安全,可以为每一个客户端都提供一个服务,所以进程可以有多个。每一个进程占用自己独立的一块内存。
线程:
线程:说白了就是一个轻量级进程,只不过这线程是属于某个进程的,这个线程共享这个进程的内存空间和地址空间,不可以分享其他的进程空间,那扣扣来说:扣扣给女朋友发送一句话就是一个线程,同时我这里来了一条腾讯新闻,又是一个线程,还可能在这个时候,朋友给我发送了一个消息,又是一个线程,可以这么理解,线程是某个进程中的请轻量级进程
前台进程和后台进程
前台进程:是当前正在使用的程序,
后台进程:是在当前没有使用的但是也在运行的进程,包括那些系统隐藏或者没有图形化界面的程序。
Linux中将前台进程挂到后台的意思就是,退出程序但是让这个程序依然进行运行,而不是退出当前程序只能关闭。
特点:
1. 前台进程可以自己控制,后台进程由系统进行维护和管理。
2. 前台进程和后台进程可以互相转换,
3. 由于是后台进程,所以系统会将主要精力放在前台也就是当前进程中,后台进程自然会比较慢。