Интервью Вопрос об отладке, многопоточности - PullRequest
4 голосов
/ 15 ноября 2008

У меня вчера был вопрос по телефону. Интервьюер спросил меня, сталкиваюсь ли я с какой-либо сложной проблемой отладки? Я сказал ему, что однажды столкнулся с проблемой отладки чужого кода, и мне понадобилось 3-4 дня, чтобы решить эту проблему. Для решения проблемы я использовал Windbg, символы и аварийный дамп.

Теперь этого достаточно, чтобы сказать? Чего ожидает интервьюер?

Я не знаю, что еще сказать, я столкнулся с этой проблемой довольно давно и не могу объяснить все детали ...

Этот вопрос очень часто встречается, и я не уверен, что правильный ответ на него?

Еще один очень распространенный вопрос:

Работали ли вы над многопоточными приложениями? Как вы можете найти тупик? Ответ: Чтобы найти тупик, мы можем посмотреть на снимок процесса в памяти и посмотреть на ожидающие потоки.

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

  1. Использовать waitformultipleobjects
  2. Ведение последовательности критических секций

Что вы, ребята, говорите?

Ответы [ 3 ]

21 голосов
/ 15 ноября 2008

Общее правило для собеседований - использовать модель STAR (мой координатор кооператива будет гордиться здесь ...):

S - Опишите ситуацию, в которой вы оказались
T - Объясните задачу, предоставив достаточно информации, чтобы интервьюер понял проблему.
A - Опишите действие, которое вы предприняли для решения проблемы.
R - Какими были результаты ваших действий

Если вы предоставите краткий, не слишком короткий или слишком длинный ответ, 99,9% интервьюеров будут удовлетворены.

3 голосов
/ 27 февраля 2013

Одной из основных причин возникновения взаимоблокировки в многопоточном приложении является циклическое ожидание, когда два разных потока содержат два ресурса, и каждый из них ожидает другого ресурса. Другими условиями, которые могут возникнуть, является отсутствие вытеснения, удержания и ожидания и взаимоисключения.

Лучший способ избежать тупика - это поддерживать порядок блокировки. Другими словами, пусть потоки могут получить блокировку в определенном порядке. Это ограничит потоки в тупик.

1 голос
/ 15 ноября 2008

Вопросы для интервью (ну, по крайней мере, хорошие) не касаются того, что вы рассказываете о своих знаниях, объясняете ли они удовлетворение интервьюера, что вы действительно его знаете.

Итак, хотя вы могли бы объяснить все тонкости windbg, ему все равно. Он позаботится о том, чтобы вы знали, что делать, и верили вам. Вы только должны предоставить достаточно информации, чтобы удовлетворить это. Альтернатива состоит в том, чтобы фактически отладить что-то перед ним, чтобы доказать это, и интервью никогда не будут длиться так долго:)

Поэтому я думаю (из того, что вы сказали), что вы знаете, о чем говорите, что у вас есть этот опыт, что вы могли бы сделать это снова. Итак, давайте перейдем к следующему вопросу, чтобы узнать немного больше о том, что еще вы знаете.

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

Интервью - это всего лишь экзамены, поскольку интересует интервьюер, а не результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...