首页 > 编程语言 >抖音C++面试相关

抖音C++面试相关

时间:2023-03-12 14:31:57浏览次数:46  
标签:函数 C++ 面试 抖音 线程 IO MySQL 级别 隔离


文章目录

  • ​​1.C++ 字节 抖音后端 一面面经​​

1.C++ 字节 抖音后端 一面面经

  • ​链接​
  • 说一说你平时接触过的主要的技术栈;
  • MySQL聚簇索引和非聚簇索引的区别
  • InNoDB的聚簇索引是用什么存储的
    (1)聚簇索引是一种数据的存储方式, 它的数据行只存放在索引(B+树)的叶子中,内部节点不存放数据
  • MySQL的事务隔离级别清楚吗
    (1)事务的隔离级别. MySQL的事务隔离级别一共有四个,分别是读未提交、读已提交、可重复读以及可串行化。. MySQL的隔离级别的作用就是让事务之间互相隔离,互不影响,这样可以保证事务的一致性。. 隔离级别比较:可串行化>可重复读>读已提交>读未提交. 由此看出,隔离级别越高,所需要消耗的MySQL性能越大(如事务并发严重性),为了平衡二者,一般建议设置的隔离级别为可重复读,MySQL默认的隔离级别也是可重复读。
  • 简单说一下什么是IO多路复用
    (1)单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力
  • IO多路复用是解决什么问题的
    (1)IO复用解决的就是并发行的问题,那么对于IO流请求操作系统内核有并行处理和串行处理的概念,串行处理的方式是一个个处理,前面的发生阻塞,就没办法完成后面的请求。
  • mmap有了解过吗
    (1)将文件或者IO映射到一块内存区域
  • 简单说下进程和线程的区别
    参考:​​面试必问——线程与进程的区别​
  • 什么情况下线程死掉,进程里面的其他线程全部死掉
    (1)同一个进程中的多个线程共享进程资源,包括主内存、文件句柄、锁资源等。那么当一个线程死了(非正常退出、死循环等)就会导致线程该占有的资源永远无法释放,从而影响其他线程
  • 已经有进程了,为什么还要设计出线程这个东西
    (1)多线程:threading,利用CPU和IO可以同时执行的原理,让CPU不会干巴巴等待IO完成
    (2)多线程 threading 机制依然是有用的,用于IO密集型计算
    因为在 I/O (read,write,send,recv,etc.)期间,线程会释放GIL,实现CPU和IO的并行,因此多线程用于IO密集型计算依然可以大幅提升速度;
    (3)即使电脑有多核CPU,单个时刻也只能使用1个,相比并发加速的C++/JAVA所以慢,C++/JAVA的多线程程序会分配到多核上去执行
  • 解释下什么叫多态
    多态性是指发出同样的消息被不同类型的对象接收时,有可能导致完全不同的行为
    (1)调用同名的函数导致不同的行为
    (2)以一致的观点来看待,从同一个基类派生下来的所有派生类对象,减轻了我们分别设计的负担
  • 虚函数跟纯虚函数有什么区别
    强调一个概念. 定义一个函数为虚函数,不代表函数为不被实现的函数。. 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。. 定义一个函数为纯虚函数,才代表函数没有被实现。. 定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数
  • 描述下TCP的三次握手
    算法题:未经排序的数组找出最长连续递增序列
    算法题:机器人从矩阵左上角走到右下角,有多少种不同的路径 (只能向右或者向下) 分析时间、空间复杂度
    算法题:大数加法


标签:函数,C++,面试,抖音,线程,IO,MySQL,级别,隔离
From: https://blog.51cto.com/u_12740336/6115851

相关文章

  • C++中类大小的问题
    文章目录​​1.C++类大小问题​​​​2.虚继承和虚函数混合使用类大小​​1.C++类大小问题eg:#include<iostream>usingnamespacestd;classa{};classb{};classc:publi......
  • C++11异步编程(std::async, std::future, std::packaged_task, std::promise)
    文章目录​​1.std::future概述含义​​​​2.std::future​​​​2.std::packaged_task​​​​2.std::promise​​1.std::future概述含义C++0x提供了future和promise来简......
  • C/C++书籍借阅系统[2023-03-12]
    C/C++书籍借阅系统[2023-03-12]1.程序名称:书籍借阅系统2.课题来源:课程组自拟3.课题类型:综合型4.目的和意义:1)综合运用所学知识,解决实际问题2)全面提高学生的程序设计......
  • 条款01:视C++为一个语言联邦
    ViewC++asafederationoflanguages将C++视为由四个次语言组成的语言联邦:C:C++是以C为基础的,包括区块(blocks)、语句(statements)、预处理(preprocessor)、内置数据......
  • 秒杀面试题!JS中this指向的理解和运用
     1.引言本文旨在讲解JavaScript中的this指向的概念和运用,帮助前端开发者更好地理解和应用this关键字。 2.this的概念在JavaScript中,this是一个关键字,用于指向当前......
  • 一天吃透Git面试八股文
    什么是Git?Git是一个版本控制系统,用于跟踪计算机文件的变化。Git是一个跟踪计算机文件变化的版本控制系统,用于帮助协调一个项目中几个人的工作,同时跟踪一段时间的进展。换......
  • 一天吃透Git面试八股文
    什么是Git?Git是一个版本控制系统,用于跟踪计算机文件的变化。Git是一个跟踪计算机文件变化的版本控制系统,用于帮助协调一个项目中几个人的工作,同时跟踪一段时间的进展。换句......
  • C++中的const
    C++中的const-const修饰的全局变量保存在常量区,不可通过任何方式修改其值-const修饰的全局变量默认为内部链接属性-const修饰的局部变量保存在符号表,且无法取得符号......
  • C/C++目录
    第01章:数据类型typedef[链接在此](https://www.cnblogs.com/kxwslmsps/p/17207640.html)第02章:常量与变量第03章:指针与引用第04章:内存管理第05章:运算符第06......
  • dev-c++ 使用教程
    DevC++支持单个源文件的编译,如果你的程序只有一个源文件(初学者基本都是在单个源文件下编写代码),那么不用创建项目,直接运行就可以;如果有多个源文件,才需要创建项目。一、新......