死锁和调度算法

  1. 什么是死锁?死锁产生的条件?

    死锁是多个线程争夺资源而相互等待,线程无法推进

    四个条件:

    1.互斥条件:一个资源只能被一个进程使用

    2.请求和保持:一个进程因请求资源而阻塞时,不会释放已有的资源

    3.不可剥夺:进程已有的资源在使用完之前,不能进入其他进程

    4.循环等待:多个进程形成首尾相连等待资源的情况

  2. 线程有哪几种状态?

    新建

    就绪:调用线程的start()方法

    运行:获得cpu时间片

    阻塞:

    等待阻塞:运行的线程执行了wait()方法

    同步阻塞:线程获取synchronized同步锁失败

    其他阻塞:调用了sleep()或join()

    死亡:线程的main(),run()执行结束,或异常而退出

  3. 有哪些进程调度算法?

    先来先服务(FCFS)

    短作业优先(SJF)

    优先级调度

    高响应比优先调度

    时间片轮转调度

    多级反馈队列调度

  4. 什么是缓冲区溢出?

    计算机向缓冲区填充数据时,超出了缓冲区本身的容量

    危害:程序崩溃、执行恶意代码

你可能感兴趣的:(java)