2014-04-28 3 views
1

В интервью на днях меня спросили, как «объявлять» переменные, чтобы использовать их в потоках. К счастью, интервью прошло довольно хорошо, и я получил работу, но я все еще в тупике по этому поводу ... и даже задаюсь вопросом, может ли интервьюер не задаться вопросом, который он действительно намеревался.Как «объявлять» переменные для многопоточного использования?

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

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

У кого-нибудь есть идеи, о чем он, возможно, говорил?

+2

Если у вас есть задание, было бы проще просто спросить его, что он на самом деле имел в виду, потому что вы его смутили? :) –

+1

@ Allan Yep, и я планирую, как только я начну свой первый день. Но ... Я нетерпелив и хотел бы знать сейчас, плюс я предпочел бы узнать, пропал ли я что-то или ошибаюсь, прежде чем я увижу его, если это возможно! :) – BVernon

+0

Я не могу думать ни о чем другом, кроме «volatile», может быть, он ожидал ответа вроде: «Нет такой вещи» –

ответ

0

Вопрос показывает, что он не знает, о чем говорит. Если вы хотите использовать переменную в потоках, вам не нужно ничего делать.

Но, возможно, он думал о классе монитора или замках чтения/записи.

Возможно, он думал о том, как передать переменную в поток (параметризованный делегат threadstart), но поскольку анонимные методы и лямбда-выражения это уже не проблема.

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