- 描述:进程与线程
线程:
就是操作系统能够运算的最小单位。
线程就是一串指令的集合,它被包含在进程之中,是进程中的实际运作单位,一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
进程:
每一个程序的内存是独立的,每一个程序都要以一个整体的形式暴露给操作系统管理,里面包含对各种资源的调用内存的管理,网络接口的调用等对各种资源的集合,就可以成为进程。
进程可以设置线程优先级,设置PID,当一个进程启动时会自动开启第一个线程为主线程,主线程会创建子线程子线程,在继续创建子线程,子线程是独立的,与主线程并没有迭代关系。
- 注:所有在同一个进程里的线程是共享同一块内存空间的。
- 注:进程 要操作CPU,必须要先创建一个线程进程本身不会执行,如果进程需要执行,至少需要调用一个线程。
- 注:单核CPU只能干一件事,只能打开一个程序,事实不是这样,单核CPU也可以执行多个程序,是因为CPU执行速度太快,让我们感觉他在,做多件事,事实上每个线程都在通过优先级排列让CPU单独进行处理。说明了,多个线程可以共享一个CPU的。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
实际就是两个线程的比对。
答:没有可比性。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
进程需要向内存申请空间。
线程就只有启动指令。
答:启动线程块。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
答:线程 1.线程共享内存空间。 2.线程与线程可以交互。 3.新的线程容易创建。 4.一个线程可以控制操作, 同一进程里的其他线程。 5.对于主线程的修改,可能影响到其他线程的行为。 注:多线程共享数据,进程数据修改时线程读取的数据也跟着修改。 答:进程 1.进程的内存是独立的。 2.进程与子进程数据不共享,是独立的。 3.新的进程需要对其父进程克隆一次。 4.进程只能操作子进程。 5.对一个父进程的修改,不会影响到子进程 注:进程创建子进程,相当于克隆一份进程。 注:两个进程之间,数据不是共享,不可互相访问,如果需要访问,必须通过,一个中间代理来实现。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
Disk < RAM < CPU Disk < 每秒/读:100MB RAM:每秒/读 : 12GB CPU:秒/时钟频率:中断多少次 CPU:2.7GHz/每秒:计算2.7亿次 CPU:核/同时执行几个任务