TME二面 9/10 40min
9/10 上午11:00 用时40min
开局聊实习,聊了大概20min,第一次聊实习聊了这么久......
Java:
1、怎么加锁
这里自己主要讲了用Synchronized加锁和Lock加锁,没有讲太多。
2、为什么要用线程池
主要有几点:
3、线程池参数有哪些
1)corePoolSize:核心线程数,不会主动进行销毁的线程数
2)maximumPoolSize:最大线程数,在空闲keepAliveTime后会进行清理
3)workQueue:任务执行队列,主要有3种。
计算机网络:
用户TCP的流量控制。
算法:
1、讲一讲如何实现一个数组随机将其打乱次序(这个没遇到过,随便答了一通......)
这里应该讲洗牌算法,但是目前还不太懂,留个坑下次补。
反问:
Q:有什么需要改进的?
A:因为你在腾讯视频做的事都没怎么写过代码,担心你写代码能力不太行,其他的没啥问题。
Q:什么时候出结果?
A:一周内会给反馈到你那边。
#秋招面经##面经##腾讯音乐娱乐#
开局聊实习,聊了大概20min,第一次聊实习聊了这么久......
Java:
1、怎么加锁
这里自己主要讲了用Synchronized加锁和Lock加锁,没有讲太多。
2、为什么要用线程池
主要有几点:
1) 维护线程数量在一个合理的范围,避免过多导致大量切换线程、过少CPU等待过久的情况出现。
2) 复用线程,在任务到达时可以直接执行,而不用等待创建线程,减少线程创建、销毁开销。
3) 提供线程的统一管理,不用人为干预,如任务过多时,线程池自己执行拒绝策略。
4) 提供一些线程原没有的功能,如定时关闭。
4) 提供一些线程原没有的功能,如定时关闭。
1)corePoolSize:核心线程数,不会主动进行销毁的线程数
2)maximumPoolSize:最大线程数,在空闲keepAliveTime后会进行清理
3)workQueue:任务执行队列,主要有3种。
4) keepAliveTime : 空闲线程保持存活时间
5) handler:拒绝策略,一般有4种:
1、AbortPolicy:丢弃该任务,抛异常(默认实现)
2、DiscardPolicy:丢弃该任务,不抛异常
3、DiscardOldestPolicy:接受该任务,丢弃最久未执行任务
4、CallerRunsPolicy:不接受该任务,由提交该任务方自己执行任务
4、线程池执行一个任务的全过程2、DiscardPolicy:丢弃该任务,不抛异常
3、DiscardOldestPolicy:接受该任务,丢弃最久未执行任务
4、CallerRunsPolicy:不接受该任务,由提交该任务方自己执行任务
图来自JavaGuide。
5、如何实现生产者消费者队列 这里讲了两点:
1、采用队列作为数据结构
2、采用一个计数器来做互斥量,若生产者生成后计数器+1,消费者取走后将计数器-1,若生产者遇到计数器值为队列最大值,阻塞,若消费者遇到计数器为0时,阻塞。
2、采用一个计数器来做互斥量,若生产者生成后计数器+1,消费者取走后将计数器-1,若生产者遇到计数器值为队列最大值,阻塞,若消费者遇到计数器为0时,阻塞。
计算机网络:
1、讲一讲滑动窗口
滑动窗口就是在发送数据时接收方以及发送方分别维护的一个区间,在此区间中可以同时接受多个序号数据,该区间会在双方的首发消息过程中不断变化。
2、滑动窗口用于什么场景用户TCP的流量控制。
算法:
1、讲一讲如何实现一个数组随机将其打乱次序(这个没遇到过,随便答了一通......)
这里应该讲洗牌算法,但是目前还不太懂,留个坑下次补。
反问:
Q:有什么需要改进的?
A:因为你在腾讯视频做的事都没怎么写过代码,担心你写代码能力不太行,其他的没啥问题。
Q:什么时候出结果?
A:一周内会给反馈到你那边。
#秋招面经##面经##腾讯音乐娱乐#