2008-11-14 2 views
4

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

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

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

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

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

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

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

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

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

ответ

19

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

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

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

1

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

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

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

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

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

3

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

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

Смежные вопросы