多线程、多进程及并发
进程:
百科描述:
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
实际上一个进程就是指一段程序的执行过程,是一个动态的过程,相对的程序是指一个静态的东西。一个程序开始运行,则是一个进程;没有运行或者运行结束,它就是一个程序。
一个进程的执行需要三步:
1.资源准备
2.执行
3.释放资源
资源包括CPU及其他运行时需要的资源,例如某个文件,某个设备等等。只有当所有资源就绪准备就绪时(外设除外,用到时才去申请资源),程序才能运行。
进程是CPU资源分配的最小单位。即一个进程负责的是程序运行的资源管理以及CPU的调度,是一个整体。
电脑都是多线程的,否则只能运行一个程序。每打开的一个程序都是一个进程。
线程:
百科描述:
程序执行流的最小单元
线程是CPU调度的最小单位。进程包括CPU的调度和资源管理,所以线程是进程的一部分。一个进程可以有多个线程。
线程只负责CPU的调度,不负责资源管理。
多线程中所使用的资源都是由进程提供,所有线程共享进程内的资源,所以在多线程中要对数据进行同步。
进程是为了运行程序,则线程是为了更高效的运行程序。因为线程不需要管理资源,所以新开线程的效率会比新建进程的效率高很多。
并发:
并发 ≠ 多线程。多线程是完成任务的一种方法;并发是系统的一种状态。所以有高并发系统一说,没有多线程系统一说。通过多线程有助于系统承受高并发状态的实现。
总结:
进程和线程都是一个时间段的描述,只不过线程比进程划分的更细。
进程需要准备资源以及调度CPU,线程只负责调度CPU。
进程是cpu资源分配的最小单位,线程是cpu调度的最小单位。