Подтвердить что ты не робот

Вопросы для интервью по программированию сокетов и многопоточности

Пожалуйста, кто-нибудь может рассказать мне о вопросах, которые могут быть заданы в интервью по темам ниже.

  • Программирование сокетов
  • Multi-Threading

Спасибо за помощь всем, кто предоставляет свое время

4b9b3361

Ответ 1

Как менеджер по найму, мой любимый сетевой вопрос, который нужно задать, был следующим:

Представьте, что пользователь, сидящий на Ethernet-подключенный ПК. У него есть браузер открытый. Он печатает "www.google.com" в адресной строке и нажмите Enter.

Теперь скажите мне, что первый пакет для отображается на Ethernet.

Возможные ответы (различной правильности) включают:

  • Я не знаю.
  • Запрос HTTP пакет.
  • TCP-пакет TCP.
  • DNS запросить пакет.
  • ARP-пакет.
  • Это зависит.

Каждый из ответов показывает что-то о понимании человеком сети в целом и IP и TCP в частности. Последующая дискуссия может рассказать об их понимании. (Предполагая, конечно, что у эксперта есть определенный опыт в этой области).

Ответ 2

Программирование сокетов

  • Разница между UDP и TCP.
  • Разница между асинхронными и синхронными сокетами.
  • Что такое пакет.
  • Как вы определили, не вызвал ли пакет неправильный формат.
  • Как вы определяете, где заканчивается один пакет и где начинается другой.
  • Что такое порт.

Многопоточность

  • Какие примитивы синхронизации вы знаете, скажите разницу между ними.
  • Что такое тупик и что такое livelock.
  • Что такое состояние гонки.
  • Что означает термин "блокировка".
  • Каков наилучший способ прекратить поток.
  • Почему вы не должны использовать функции TerminateThread-esque.

Ответ 3

Несколько примеров вопросов:

  • Асинхронный ввод-вывод, один из подходов состоит в том, чтобы задать вопрос, по которому разные клиенты могут запрашивать сервер, и может привести к условиям гонки, если они реализованы через несколько потоков (например, кэширование результатов). Если собеседник идет по нескольким темам, поднимите условия гонки и посмотрите, указывают ли они асинхронный ввод-вывод в качестве опции.
  • В чем разница между мертвым замком и live-lock?
  • Прототип веб-сервера
  • Прототип веб-клиента
  • Что такое эфемерные порты; альтернативно описывают приложение нагрузки нагрузки, которое обращается к серверу с 1000 запросами в секунду, но через несколько секунд прекращает делать запросы к серверу; через 2-4 минуты приложение снова начинает поражать сервер с 1000 запросами.
  • Напишите потокобезопасный производитель/потребительский буфер, к которому можно получить доступ один или несколько производителей/потребителей
  • В чем разница между клиентом/сервером и p2p
  • Это больше сетей, но полезно знать, что происходит под вызовами сокета: описать трехстороннее рукопожатие TCP
  • Что такое алгоритм nagle? Когда это желательно? Как бы вы отключили это?
  • Вариант Linux: при написании демона, каковы базовые строительные блоки (например, разворачивание ребенка и убийство родителя, закрытие stdin/stdout/stderr и т.д.).
  • Вариант Windows: при написании службы Windows, каковы основные строительные блоки.
  • Создайте протокол для обмена данными между клиентом и сервером для отправки аудио/видео. Как продлить его для следующей последней/самой большой функции.
  • Как работают окна TCP и что я могу сделать для оптимизации производительности приложения, которое выполняет множество больших чтений на континентах.

Ответ 5

Вы спрашиваете, потому что вас затащили, чтобы взять интервью у кого-то, кто будет в вашей команде? Задавайте вопросы, которые основаны на реальных проблемах, с которыми вам пришлось столкнуться в повседневной работе. Подумайте о последней ошибке, связанной с программированием сокетов, и включите ее в вопрос интервью.

Теория хорошая, но вы хотите знать, что человек, вступающий в команду, имеет опыт в траншеях.

Ответ 6

  • Почему типичная программа сокета нуждается в многопоточности
  • Как вы общаетесь с множеством разных сетевых подключений одновременно, из одного процесса/потока? Подсказка: асинхронная розетка
  • Объясните, как работает Internet datatransfer? или Объясните, как работает веб-сервер? ответьте на него на основе концепций программирования сокетов, Hint TCP Http и т.д.

Ответ 7

Вопросы сокета

  • Что такое сокет?
  • В чем разница между accept и connect?
  • В чем разница между close и shutdown?
  • Как вы могли бы connect до www.google.com асинхронно?

Многопоточные вопросы

  • Что такое поток и как он отличается от процесса?
  • Когда вы можете использовать потоки в одной системе ЦП?
  • Как бы вы измеряли накладные расходы коммутатора контекста между потоками?
  • Как бы вы сделали таблицу хеш-таблицы с минимальным уровнем безопасности, позволяя максимально concurrency?

Ответ 8

  • Назовите некоторые преимущества и недостатки Java-сокетов.
  • В чем разница между экземпляром URL и экземпляром URLConnection?
  • Как мне установить соединение с URL?
  • Что такое сокет в сети Java и RMI?
  • Какая информация необходима для создания TCP-сокета?
  • Каковы два важных класса Socket Socket?
  • Когда вызывается MalformedURLException и UnknownHostException?
  • Что означает RMI?
  • Что такое RMI?
  • В чем разница между классами File и RandomAccessFile?
  • Какой интерфейс должен реализовать объект, прежде чем он может быть записан в поток как объект?
  • Объясните поиск локальных портов
  • Каковы два важных класса Socket Socket?