————————进程和线程的区别————————
进程是资源(CPU,内存)分配的基本单位,他是程序执行的一个实例。
程序运行时系统会创建一个进程,为它分配资源,将它放入就绪队列,等待进程调度器调度,当选中它时为它分配CPU资源,程序开始正真的运行。
线程是程序执行的最小单位,它是进程的一个执行流,一个进程可以有多个线程组成,线程间共享进程的所有资源,每个线程都有自己的局部变量和堆栈,它们被CPU独立调度执行,支持多并发,每个请求分配一个线程执行。
区别:
1.进程是资源分配的最小单位,线程是程序执行的最小单位
2.进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据段来维护代码段,堆栈段和数据段,这种操作是非常昂贵的。所以进程间切换是非常耗资源的。
线程是共享进程中的数据,使用相同的地址空间
3.线程之间的通信方便,同一进程下的线程共享静态资源和全局变量等数据
进程间的通信需要通过(IPC)来实现
4.多进程程序更健壮,多线程程序一个线程死掉,整个进程就会死掉,多进程一个进程死掉不会影响其他的进程,因为进程都有自己的独立空间
——————————2.线程同步的方式有哪些——————————
临界区,信号量,互斥对象,事件对象
——————————3.进程的调度算法——————————————
1.先来先服务调度算法
2.短作业进程优先调度算法
3.优先权调度算法
4.高响应比优先调度算法