2008-10-07 89 views
22

請任何人都可以告訴我的疑問,可在接受記者採訪時被要求提供以下幾方面面試問題

  • socket編程
  • 多線程

提前感謝送給大家誰提供他們的時間

回答

27

socket編程UDP和TCP之間

  • 差異。
  • 異步和同步套接字之間的區別。
  • 什麼是數據包。
  • 如何判斷數據包是否未到達格式錯誤?
  • 你是怎麼判斷其中一個分組結束,其中一個又一個開始。
  • 什麼是港口。

多線程

  • 什麼同步原語,你知道,告訴他們之間的區別。
  • 什麼是死鎖,什麼是活鎖。
  • 什麼是競賽條件。
  • 術語'無鎖'意味着什麼。
  • 什麼是終止線程的最佳方式。
  • 爲什麼不應該使用TerminateThread-esque函數。
5
  • 爲什麼一個典型的套接字程序需要多線程
  • 你怎麼跟一堆不同的網絡連接的同時,從相同的進程/線程?提示:異步套接字
  • 說明Internet數據傳輸如何工作?或者解釋一個web服務器的工作原理?回答是基於Socket的編程概念,提示TCP的Http等。
+2

「解釋互聯網是如何工作的?」除非你僱用Vint Cerf,否則這對我來說似乎過於寬泛。 – 2008-10-13 19:59:17

+0

Innternnet是如何工作的? internnet如何工作?數據如何被破壞? – 2008-10-13 20:11:16

+0

典型的套接字程序需要多線程的想法是無稽之談。多線程I/O和/或多程序在多線程變得普遍很久以前就非常成功地使用了。 – 2013-02-10 19:48:03

8

一對夫婦的例子問題:

  • 異步I/O,一個方法是問一個問題,不同的客戶可能會查詢服務器,如果通過多線程實現(例如緩存結果),可能會導致競爭條件。如果受訪者進入多個線程,調出競爭條件並查看他們是否提及異步I/O作爲選項。
  • 是什麼死鎖和活鎖
  • 原型Web服務器
  • 原型Web客戶端之間的區別
  • 什麼是臨時端口;或者描述負載壓力應用程序,該應用程序以每秒1000次的請求命中服務器,但幾秒鐘後停止向服務器發出請求; 2-4分鐘後,應用程序再次以1000s的請求開始點擊服務器。
  • 編寫能夠由一個或多個生產者/消費者訪問的線程安全的生產者/消費者緩衝
  • 是什麼客戶端/服務器和P2P之間的區別
  • 這是更多的網絡,但它有助於瞭解套接字調用下面會發生什麼:描述TCP 3次握手
  • 什麼是nagle的算法?何時可取?你會如何解決這個問題?當你編寫一個守護進程時,什麼是基本構建塊(例如分叉和殺死父進程,關閉stdin/stdout/stderr等)
  • Linux變體:寫windows服務時什麼是基本的建築模塊。
  • 設計用於發送音頻/視頻的客戶端和服務器之間通信的協議。你如何擴展它的下一個最新/最大的功能。
  • TCP窗口如何工作,以及如何優化跨大陸執行大量讀取的應用程序的性能。
35

作爲人事經理,我最喜歡的網絡問題要問的是:

想象一下,一個用戶坐在一個 以太網連接的PC。他有一個瀏覽器 開放。他在地址欄中輸入「www.google.com」 ,然後點擊輸入。

現在告訴我什麼第一個數據包 出現在以太網上。

可能的答案(的變化的正確性)包括:

  • 我不知道。
  • HTTP請求 數據包。
  • TCP syn包。
  • DNS 請求包。
  • ARP數據包。
  • 這取決於。

每個答案揭示了一般人對網絡的理解,特別是IP和TCP。隨後的討論可以揭示他們理解的內容。 (當然,假設提問者在這方面有一些專業知識)。

+6

聰明的問題。 – 2009-01-27 16:29:34

6

你問,因爲你被拖入採訪誰將會在你的團隊?提出基於您在日常運營中不得不面對的現實問題的問題。想想你與套接字編程有關的最後一個錯誤,並將它變成面試問題。

理論是好的,但你要知道,加入這個團隊的人在戰壕經驗。

0

插座問題

  • 什麼是socket?
  • 什麼是acceptconnect之間的區別是什麼?
  • 什麼是closeshutdown之間的區別是什麼?
  • 你將如何connectwww.google.com異步?

多線程問題

  • 什麼是線程,它是如何從一個進程有什麼不同?
  • 何時可以選擇在單個CPU系統上使用線程?
  • 你將如何測量線程之間的上下文切換開銷?
  • 如何製作一個MT安全的哈希表,同時允許最大的併發性?
-3
  • 指出Java套接字的一些優缺點。
  • URL實例和URLConnection實例有什麼區別?
  • 如何建立到URL的連接?
  • 什麼是Java網絡和RMI中的套接字?
  • 需要什麼信息來創建一個TCP套接字?
  • 什麼是兩個重要的TCP Socket類?
  • 當MalformedURLException和UnknownHostException拋出?
  • RMI代表什麼?
  • 什麼是RMI?
  • File和RandomAccessFile類有什麼區別?
  • 對象必須先將對象實現爲什麼接口,然後才能將其寫入流中作爲對象?
  • 解釋查找本地端口
  • 什麼是兩個重要的TCP套接字類?