• 2018校招金山云笔试题目总结


    金山云笔试:
    1.两个进程争夺同一个资源会发生死锁吗?(死锁发生的四个必要条件)
    (1)互斥条件:一个资源每次只能别一个进程使用。
    (2)请求和保持条件:一个进程因为请求资源而阻塞时,对持有资源保持不放。
    (3)不剥夺条件:在进程没有执行完成的情况下,持有资源不会被剥夺。
    (4)循环等待条件:若个进程之间因为等待资源而形成一种循环关系。

    在其他情况不明确的情况下,无法判断两个进程是否仅需要这一个资源就能完成,如果需要其他的资源,而资源被另外一个进程所持有,就有可能发生死锁。

    2.关于寄存器和高速缓存?

     寄存器是中央处理器(cpu)的的组成部分,是有限存储容量的高速存储部件,可以暂存指令,数据和地址(指令寄存器(IR),程序计数器(pc),累加器(ACC))。

     Cache,位于CPU和主内存之间容量小但速度很快的存储器,是为了弥补CPU与内存之间的运算差距而设置的部件。

    3.实现原子加操作

    锁总线,

    恩~~,果然不是很明白,难受。。。

    4.信号量,互斥体,自旋锁。

     信号量,相当于一个计数器,每当一个进程使用一个资源,信号量-1;进程释放一个资源,信号量+1;当信号量为0时,进程无法使用该资源。

     互斥体,在任何线程进入临界区之前都先获得临界区的互斥体,其他进程没有获得互斥体便不能执行。

     自旋锁,跟互斥锁挺像,但是未获得执行权的进行不阻塞,而是循环请求,适应于持有锁时间短的进程。

    5.TCP中服务端和客户端的执行完操作后的各种状态。

     (1)三次握手时:

              客户端:closed->syn-send->establised

              服务端:listened->syn-rcvd->establised

     (2)四次挥手时:

              客户端:fin-wait-1->fin-wait-2->time-wait->close

              服务端:close-wait->last-ack->close

    6.事务的隔离机制。

     (1)readunCommited 事务修改数据加了X锁,结束后释放。解决了更新丢失。

     (2)readCommited    在(1)的基础上,每次事务读数据时+S锁,读完(不是事务结束)释放。解决了脏读。

     (3)repeatableRead  在(1)的基础上,每次事务读数据时+S锁,事务结束后释放。解决了不可重复度。

     (4)serializable 事务串行执行。。。。

    7.会引起全表查询的情况。

     (1)模糊查询:右模糊查询,全模糊查询一定会产生全表扫描。

     (2)查询条件中含有 is null的select语句

     (3)其余我真的不知道去哪查了。。。知道的可以回复我啊。

  • 相关阅读:
    [转]Java 反射在实际开发中的应用
    phantomjs生成网页快照,有些https 证书不支持问题解决
    PHP + TrackingMore物流信息跟踪
    rabbitMQ消息队列 – Message方法解析
    MySQL UNION 与 UNION ALL 语法与用法
    提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
    php商品对比功能代码分享
    Redis类的源码使用
    php+redis实现消息队列
    PHP中利用redis实现消息队列处理高并发请求
  • 原文地址:https://www.cnblogs.com/rookie111/p/7515082.html
Copyright © 2020-2023  润新知