2014-12-05 4 views
2

На прошлой неделе я пошел на собеседование, и во время интервью один из интервьюера задал этот вопрос со мной,меры предосторожности, связанные с методом run() потока?

Q. What precaution do you take will writing a run() method? 

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

I wrote run() like this during interview.. 

class DrawCircle implements Runnable { 

    public void run(){ 
     //some code here 
    } 

} 

любой орган может сказать мне, что это правильный способ написания пробег() в любом Runnable потоке?

+2

Я бы попросил ответа у интервьюера перед отъездом. Это дрянные вопросы, потому что речь идет не о том, что правильно или неправильно, а о том, чтобы судить о том, что есть в умах интервьюеров, и у вас есть ответ на этот вопрос. Плохая практика опроса. –

+0

i тоже сделал такой же предмет. Я попросил его ответить на вопрос, но он сказал, что вы можете получить от Google. – Som

+5

crappy response, хороший интервьюер всегда объяснит вам. –

ответ

2

Ничего очевидно, но эти:

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

  2. Если вы расширяете класс Thread, убедитесь, что вы отменили правильный метод. Чтобы быть в безопасности, добавление @override на вершине метода является хорошим.

  3. Если вы используете анонимный поток, убедитесь, что вы назначили его экземпляру Thread. Если ваш метод run переходит в плохое состояние/цикл infinte. Вы можете прервать поток с помощью экземпляра.

+0

Позвольте мне очистить код выше ... – Som

+0

Пункт 1 - что, если я хочу, чтобы метод работал в течение всего срока службы приложения? Это не редкость. –

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