进程和线程
进程:
进程就是已经在运行的程序,系统使用进程控制块(PCB)(PCB的详解在上一章)来描述进程,然后用双向链表的数据结构来控制PCB。
进程存在的意义:
可以让操作系统同时处理多个任务,也就是我们说的并发编程(并行+并发) ,让多核cpu的资源利用率提高。
线程:
一个进程里默认会有一个线程,但是也可以有多个线程。每个线程都可以独立的在CPU上进行调度,在同一个进程中,这些线程共享同一份系统资源(内存资源和文件资源)。
线程存在的意义:
进程的频繁创建和删除,效率是低效的,如果使用了线程,因为线程会共用进程里的系统资源,所以只有在创建第一个线程的时候和删除最后一个线程的时候才会有资源开销。
进程和线程的区别
1.进程是资源分配的基本单位,线程是调度执行的基本单位。
2. 一组PCB用来描述一个进程,每一个PCB用来描述一个线程。
3.进程包含了线程。
4.线程比进程更轻量,创建删除的开销小。
5.同一个进程里的线程共用同一分系统资源(内存和文件资源),进程和进程之间,是独立的系统资源。
进程和线程的联系
1.进程包含了线程,一个进程默认有一个线程,也可以用多个线程。
2.同一个进程里线程会共用一份系统资源,但是和系统调度有关的几个属性(进程状态,进程优先级,进程上下文,进程记账信息)是每个线程独有一份,因为每个线程要进程单独的cpu调度,如果这些有关调度的属性也是共享的,那么就没办法做到线程的独立调度了