一.什么是程序?
程序=数据结构+算法
程序是指示计算机每一步动作的指令,也是一个可执行文件。是指令和数据的组合体。是一个静态的实体。
程序(Program)告诉计算机应如何完成一个计算任务,这里的计算可以是数学运算,比如解方程,也可以是符号运算,比如查找和替换文档中的某个单词。
二.什么是进程?
进程就是正在进行中的程序,会占用相应的内存地址,由CPU进行执行和计算。在用户角度来看,进程是程序的一次动态执行过程。在操作系统的角度来看,进程是操作系统分配资源的最小的基本单位。
进程的特点
(1)独立性
(2)动态性
(3)并发性
三.什么是线程?
线程是操作系统OS能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.
一个进程可以开启多个线程,其中有一个主线程来调用本进程中的其他线程。
线程与进程的关系:
一个程序运行后至少会有一个进程,而一个进程当中包含一个或多个线程(即单线程程序或多线程程序)。而每个线程在共享同一个进程中的内存的同时,又有自己独立的内存空间。
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行。
四.什么是协程?
协程又称作轻量级线程或用户态线程。如果一种实现使得每个线程需要自己通过调用某个方法,主动交出控制权。那么我们就称这种用户态线程是协作式的,即是协程。