腾讯实习测试开发岗位面试总结

本文是关于腾讯测试开发岗位面试的经验分享,重点讨论了Go语言的使用,如QPS提升、Redis并发问题、分布式锁的实现、守护线程、信号量原理、HTTP与RPC的区别,以及并发、Git、测试开发工作内容等相关问题。
摘要由CSDN通过智能技术生成

        腾讯测开的部门是用 go 语言,面试者是 java 技术栈。这场面试,最后还问了一个智力题,果然是腾讯的风格,目前只发现腾讯爱问这类题目,主要是考察面试者聪明不聪明。

问题记录

对go了解吗?部门主要是偏go语言的

答:说了之前学过一段时间,但是太长时间没有接触了,如果给一个礼拜的话就可以将相关知识捡回来

项目问答:说的是项目中写了用Redis提高了QPS,那么如果QPS提高了,用户客户端无限制地请求服务器,那么会导致Redis的连接打满吗?比如说能承载的QPS极限是10W,来了12W的请求,该怎么办呢?

说了使用限流的思路,可以使用其他中间件,比如说使用令牌桶,每秒钟以一定的速率放入令牌,然后只有取到令牌的请求线程才能执行秒杀操作,否则的话就可以让这个线程暂停,或者是执行自动重试、退出。

面试官补充:可以设置一个队列,就是将获得令牌失败的线程放入到一个队列中,然后的等待令牌有空余的时候,这时候就唤醒线程去重新竞争令牌,同时要考虑队列是否会产生内存溢出问题

项目问答:Redis中有遇到并发竞争问题吗?

答:说了秒杀优惠券的引发的并发竞争的问题,引出分布式锁,通过分布式锁来解决并发竞争问题,说了使用Redission来实现这个分布式锁。

项目问答:分布式锁的实现是怎么样的?

回答:

  • 1.互斥,只有一个线程能够在一个时间段内操作这个线程,通过setnx实现。

  • 2.可重入,可以通过一个设置一个hash结构,这个哈希结构是这样设置的{线程ID}=>{锁的重入次数},当线程到来的时候就判断有没有这个数据,如果有这个数据的话,那么就检查线程ID是否和自己的ID一样,如果一样的话就锁重试次数++,当重入结束的时候,就让这个锁的重入次数--,当锁的重入次数==0的时候,删除这个键

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缓下脚步

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值