关于套接字编程和多线程的访谈问题
Interview Questions on Socket Programming and Multi-Threading
请任何人都能告诉我以下主题的问题
- 套接字编程
- 多线程
提前感谢所有提供时间的人
作为一名招聘经理,我最喜欢问的网络问题是:
想象一个用户坐在以太网连接的电脑。他有一个浏览器打开他键入"www.google.com"在地址栏中,然后点击回车键。
现在告诉我第一包是什么出现在以太网上的是。
可能的答案(正确性不同)包括:
- 我不知道
- HTTP请求数据包
- TCP同步数据包
- DNS请求数据包
- ARP数据包
- 这取决于情况
每一个答案都揭示了人们对网络的理解,尤其是IP和TCP。随后的讨论可以揭示他们的理解。(当然,假设提问者在这方面有一定的专业知识)。
套接字编程
- UDP和TCP之间的区别
- 异步套接字和同步套接字之间的区别
- 什么是包
- 您是如何确定数据包到达时是否格式错误的
- 你是如何确定一个包在哪里结束,另一个包从哪里开始的
- 什么是港口
多线程
- 你们知道哪些同步基元,它们之间的区别
- 什么是僵局,什么是活络
- 什么是比赛条件
- 术语"无锁"是什么意思
- 终止线程的最佳方式是什么
- 为什么不应该使用TerminateThread式函数
几个示例问题:
- 异步I/O,一种方法是问一个问题,如果通过多个线程实现(例如缓存结果),不同的客户端可能会在哪里查询服务器,并可能导致竞争条件。如果受访者选择多个线程,请提出竞争条件,看看他们是否提到异步I/O作为一种选择
- 死锁和活锁有什么区别
- web服务器原型
- web客户端原型
- 什么是短暂的港口;可替换地描述负载压力应用程序,该应用程序每秒以1000个请求命中服务器,但在几秒钟后停止向服务器发出请求;2-4分钟后,应用程序再次开始向服务器发送1000个请求
- 编写一个线程安全的生产者/消费者缓冲区,一个或多个生产者/消费者可以访问该缓冲区
- 客户端/服务器和p2p之间有什么区别
- 这是更多的联网,但了解套接字调用下面发生了什么是有帮助的:描述TCP 3向握手
- nagle的算法是什么?什么时候是可取的?你怎么关掉它
- Linux变体:在编写守护进程时,基本构建块是什么(即派生子进程并杀死父进程、关闭stdin/stdout/stderr等)
- Windows变体:在编写Windows服务时,基本的构建块是什么
- 设计一个协议,用于在客户端和服务器之间进行通信,以发送音频/视频。如何为下一个最新/最棒的功能扩展它
- TCP窗口是如何工作的?对于一个跨大陆执行大量大型读取的应用程序,我可以做些什么来优化性能
什么是死锁,如何避免它?
一些套接字编程问题。
你问这个问题是因为你被拉去面试你团队中的某个人吗?根据你在日常运营中不得不面对的现实问题提出问题。想想你遇到的最后一个与套接字编程有关的bug,把它变成一个面试问题。
理论很好,但你想知道加入团队的人有战壕经验。
- 为什么一个典型的套接字程序需要多线程
- 如何同时与来自同一进程/线程的不同网络连接进行对话?提示:异步套接字
- 解释互联网数据传输是如何工作的?或者解释Web服务器是如何工作的?基于套接字编程概念、提示TCP Http等进行回答
套接字问题
- 什么是插座
accept
和connect
之间有什么区别close
和shutdown
之间有什么区别- 您将如何异步地从
connect
到www.google.com
多线程问题
- 什么是线程,它与进程有何不同
- 您什么时候可以选择在单个CPU系统上使用线程
- 您将如何衡量线程之间的上下文切换开销
- 如何制作MT安全的哈希表,同时允许最大并发性
- 说出Java套接字的一些优点和缺点
- URL实例和URLConnection实例之间的区别是什么
- 如何连接到URL
- Java网络和RMI中的套接字是什么
- 创建TCP套接字需要什么信息
- 两个重要的TCP套接字类是什么
- MalformedURLException和UnknownHostException何时引发
- RMI代表什么
- 什么是RMI
- File和RandomAccessFile类之间的区别是什么
- 在将对象作为对象写入流之前,对象必须实现什么接口
- 解释查找本地端口
- 两个重要的TCP套接字类是什么
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 如何重构类层次结构以避免菱形问题
- 基于boost的程序的静态链接——zlib问题
- C++格式化输出问题
- 关于套接字编程和多线程的访谈问题