面试最难的一集

腾讯云平台架构后台开发日常实习一面凉经#我的求职进度条##腾讯##面经#
也没人告诉我腾子这么高强度啊,简直是本牛子经历过最难的一次面试面试官不开摄像头,不问项目,粗问实习,全程拷打底层和场景,越不会越问,面完十分钟秒挂。

# 实习(答的比较流利且不对口,没有)

## 1.说说你在实习中解决的最有价值的问题?

## 2.你这个问题如何解决的?

## 3.你是怎么排查到这个问题的?

## 4.你如何量化解决这个问题后的效果的?有数据指标吗?

# C++

## 1.讲讲系统的内存分配机制?

## 2.说说堆区和栈区的区别?怎么在堆区申请内存?new和malloc的区别是什么?

## 3.如果malloc了一块堆内存,让`std::string`对象管理这片内存可以吗?为什么?

## 4.如果只有2G物理内存,malloc申请3G内存会发生什么?如果报错是编译期报错还是运行时报错?如果是运行时报错报的是哪种错误?

## 5.lamda的底层原理是什么?和匿名函数是一个东西吗?如果不是的话有什么区别?你知道C++11的std::function出现之前C++如何定义和使用函数对象吗?

## 6.手写定义函数对象的代码

## 6.说说三种智能指针的区别?如果你自己定义和使用指针时会用哪一种智能指针,为什么?

## 7.手写循环引用产生的代码和如何解决循环引用的代码

## 8.struct中定义int、double、char三种类型的成员变量,不同的定义顺序(比如类定义中以int、double、char的顺序定义和以char、double、int的顺序定义)你觉得会有什么不同吗?

# 场景题

场景:有一个服务器,负责跑用户发来的python脚本

## 1.如果某用户脚本是恶意脚本,有无限循环持续占用服务器cpu,影响到其他用户使用,你如何排查和解决这个问题?

## 2.你提到设计调度器、用户态线程、检测线程,由用户态线程来承载脚本任务,由调度器来给任务分配线程去执行,由检测线程观测用户态线程执行时长,那么你为什么要设计用户态线程去跑任务?

## 3.怎么观测它的执行时长呢?检测线程是系统线程还是用户态线程?如果用户脚本并非恶意只是单纯执行比较久,你这样会不会误判?

## 4.如果恶意脚本中出现数组越界等违规操作导致程序崩溃,即使它工作在用户态线程也会进而破坏系统线程和进程,你怎么解决?
(意识到之前思路错误,改说用容器化技术)

## 5.你提到改用容器化技术来跑用户脚本,说说容器的底层原理?在这个场景中具体怎么用容器化技术来解决问题?
(之前了解过一点,但是完全讲不出)

## 6.回到刚刚你提到的,手写实现用户态线程、调度器以及检测线程的代码

## 7.你说你平常用的是框架提供的协程和调度机制,说说Boost中协程的机制和原理是什么样的?是哪些类提供了这些能力?

## 8.假如用户发出http请求后迟迟没有收到服务器的响应,你应该如何排查和解决这个问题?

## 9.你提到用心跳机制来保证用户和服务端连接未断开,但我说的未收到响应并不是传输层问题而是应用层问题,我想问的是在应用层如何排查和解决?
(不清楚要从什么方向回答)

# 算法

力扣1262.可被3整除的最大和
(暴力回溯写出来,不会优化)
全部评论

相关推荐

评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务