关于套接字编程和多线程的访谈问题

时间:2008-10-07 03:59:22

标签: c++ multithreading sockets

请有人告诉我这些问题,可以在面试中询问以下主题

  • 套接字编程
  • 多线程

感谢所有提供时间的人

8 个答案:

答案 0 :(得分:35)

作为一名招聘经理,我最喜欢的网络问题是:

  

想象一个用户坐在一个   以太网连接的PC。他有一个浏览器   打开。他键入“www.google.com”   在地址栏中点击进入。

     

现在告诉我第一个数据包到底是什么   出现在以太网上。

可能的答案(具有不同的正确性)包括:

  • 我不知道。
  • HTTP请求 包。
  • TCP syn数据包。
  • DNS 请求包。
  • ARP数据包。
  • 取决于。

每个答案都揭示了一般人对网络的理解,尤其是IP和TCP。随后的讨论可以揭示他们的理解。 (当然,假设提问者在这方面有一些专业知识)。

答案 1 :(得分:27)

套接字编程

  • UDP和TCP之间的区别。
  • 异步和同步套接字之间的区别。
  • 什么是数据包。
  • 如何确定数据包是否未到达格式错误。
  • 您如何确定一个数据包的结束位置以及另一个数据包的开始位置。
  • 什么是港口。

<强>多线程

  • 您知道哪些同步原语,区分它们。
  • 什么是死锁,什么是活锁。
  • 什么是比赛条件。
  • “无锁”这个词是什么意思。
  • 终止线程的最佳方法是什么。
  • 为什么不应该使用TerminateThread-esque函数。

答案 2 :(得分:8)

几个示例问题:

  • 异步I / O,一种方法是询问不同客户端可能查询服务器的问题,如果通过多个线程实现(例如缓存结果),可能会导致竞争条件。如果受访者使用多个线程,请调出竞争条件,看看他们是否提到异步I / O.
  • 死锁和实时锁定有什么区别
  • 原型Web服务器
  • 原型Web客户端
  • 什么是短暂的港口;或者描述一个负载压力应用程序,该应用程序每秒有1000次请求命中服务器,但在几秒钟后停止向服务器发出请求; 2-4分钟后,应用程序再次开始使用1000次请求命中服务器。
  • 编写一个可由一个或多个生产者/消费者访问的线程安全的生产者/消费者缓冲区
  • 客户端/服务器和p2p
  • 之间有什么区别
  • 这是更多网络,但了解套接字调用下发生的事情很有帮助:描述TCP 3次握手
  • 什么是nagle的算法?什么时候可取?你怎么能把它关掉?
  • Linux变体:在编写守护进程时,基本构建块是什么(即分叉子进程并终止父进程,关闭stdin / stdout / stderr等)。
  • Windows变体:在编写Windows服务时,基本构建块是什么。
  • 设计用于在客户端和服务器之间进行通信以发送音频/视频的协议。你如何将它扩展到下一个最新/最伟大的功能。
  • TCP窗口如何工作,我该怎么做才能优化跨大洲执行大量读取的应用程序的性能。

答案 3 :(得分:7)

什么是死锁?你如何避免它?

Some socket programming questions

答案 4 :(得分:6)

你是在问,因为你被拖进去采访将在你团队中的人?提出基于您在日常运营中不得不面对的现实问题的问题。想想你最后一个与套接字编程有关的错误,并把它变成一个面试问题。

理论很好,但你想知道加入团队的人在战壕中有经验。

答案 5 :(得分:5)

  • 为什么典型的套接字程序需要多线程
  • 如何从同一进程/线程一次与多个不同的网络连接进行通信?提示:异步套接字
  • 解释互联网数据传输的工作原理?或解释网络服务器的工作原理?根据套接字编程概念回答它,提示 TCP Http等。

答案 6 :(得分:0)

插座问题

  • 什么是套接字?
  • acceptconnect之间有什么区别?
  • closeshutdown之间有什么区别?
  • 你如何connect www.google.com异步?

多线程问题

  • 什么是线程,它与流程有什么不同?
  • 您何时可以选择在单个CPU系统上使用线程?
  • 您如何衡量线程之间的上下文切换开销?
  • 如何在允许最大并发的同时制作MT安全哈希表?

答案 7 :(得分:-3)

  • 说明Java套接字的一些优点和缺点。
  • URL实例和URLConnection实例之间有什么区别?
  • 如何建立与URL的连接?
  • Java Networking and RMI中的插槽是什么?
  • 创建TCP套接字需要哪些信息?
  • 两个重要的TCP套接字类是什么?
  • 当MalformedURLException和UnknownHostException抛出时?
  • RMI代表什么?
  • 什么是RMI?
  • File和RandomAccessFile类有什么区别?
  • 在将对象作为对象写入流之前,对象必须具有哪个接口?
  • 解释寻找本地端口
  • 两个重要的TCP套接字类是什么?