ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

遇到过的八股

遇到过的八股 遇到过的高频八股1.介绍一下智能指针CPP智能指针是c基于RAII资源管理方式管理动态生命周期对象的设计包括unique_ptr它独享所有权只允许被移动不允许被拷贝。sharedptr包括强引用计数它共享所有权当引用计数为0时自动调用delete释放空间。weakptr和sharedptr结合起来使用它不增加引用计数的数量在使用之前需要通过lock获得sharedptr确定对象存在去使用。2.select、poll和epoll的区别CPP网络编程select、poll和epoll都是适用于io多路复用的select能监听的fd受fdsize的限制poll没有这个固定限制他们都需要每次把监听的集合传递给内核epoll不需要这么做epoll在内核中维护要监听的文件描述符集合epollwait只返回那些发生事件的文件描述符更适合大量连接且少量活跃的场景。3.介绍一下mysql的事务隔离级别mysqlmysql的事务隔离级别包括读未提交、读提交、可重复度、串行化它们针对的是脏读、幻读不可重复读去解决问题读提交通过多版本并发控制解决脏读的问题可重复读在这个基础上增加了临键锁基本解决了幻读和不可重复读的问题但是对于快照读和当前读的混合读没有完全解决串行化就好像是串行读的结果。4.什么是布隆过滤器Redis相关可以解决缓存穿透布隆过滤器是一种效率很高的概率型数据结构它包括一个位数组和多个哈希函数通过哈希计算对多个位置置1对于指定的数据通过布隆计算得到的位置为0就一定不存在这个数据如果都为1可能存在。
返回列表