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

Весь этот раздел кода не имеет абсолютно никакого смысла. Вы ищете серию букв, за которыми следует пробел или символ новой строки, а затем выполняете цикл while, чтобы увидеть, когда первый символ (вы никогда не меняете значение i) в yytext равен строке, которая происходит с быть пустым?

([a-zA-z])+(" "|\n) {word++; int i=0; 
while(yytext[i]!="\0")
{
if(yytext[i]=" ") blank++;
else if(yytext[i]=="\n") line++;
}

}

Если вы ищете завершающий символ NUL, вам нужно указать его как символ, а не заключать его в двойные кавычки. И вам также нужно увеличить i, чтобы вы пересекли все yytext. В настоящее время ваш цикл while никогда не завершится, что объясняет, почему ^ D ничего не делает. Но вам не нужно ничего этого делать.

Так как все, что вам нужно, это подсчет количества слов, то все, что вам нужно сделать, это ...

([a-zA-z])+ {word++;}

... поскольку другие правила будут обрабатывать счетные пробелы и переводы строк и т. Д.

6
задан Joel Coehoorn 28 December 2011 в 20:36
поделиться

4 ответа

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

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

Я предполагаю, брал ли я интервью у кандидата в этой ситуации, я работал бы с примером реального мира вместо того, чтобы совершить нападки по более общим темам, которые могут быть заключены в кавычки назад дословно из учебника. Я говорю это сделавшее маленькую многопоточную работу сам и помнящий, как плохо я завинтил эти первые два раза. Многие могут говорить разговор... ;)

8
ответ дан 8 December 2019 в 14:48
поделиться

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

4
ответ дан 8 December 2019 в 14:48
поделиться

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

  1. Общее понимание базовых понятий как те Вы перечисляете (независимый от языка)
  2. Определенное понимание библиотек параллелизма Java и примитивов (характерный для работы они сделали бы),
  3. Способность разработать решение параллельной проблемы разумным способом.

Я считаю № 1 требованием (для моих положений). Я считаю № 2 хорошим, чтобы иметь. Если они понимают это и могут описать это с точки зрения pthreads или безотносительно другой библиотеки, это не важная персона для изучения последних библиотек параллелизма Java (понятия являются твердой частью). И № 3 имеет тенденцию разделять наймы от возможно-наймов.

На Ваш вопрос я не полагал бы, что ветвление/соединение известно почти любым, особенно кто-то подающий заявление на должность разработчика веб-приложения. Я искал бы разработчиков, чтобы иметь опыт с некоторыми (но не все) тех тем. Большинство разработчиков, у которых я взял интервью, не использовало Java 5 +, параллелизм освобождает вообще, но они могут обычно описывать вещи как гонка данных или мертвая блокировка.

2
ответ дан 8 December 2019 в 14:48
поделиться

Реальный вопрос:

В каких путях это имеет значение для кода, который они будут разрабатывать?

Необходимо знать, какие понятия положение разработки Вы нанимаете для потребностей знать, чтобы смочь работать над проектами, за которые они будут ответственны.

Как с чем-либо в мире программирования.. Дьявол находится в деталях, и Вы не можете знать все. Вы ожидали бы, что они будут знать Perl, если бы Вы нанимали для положения Java?

Кроме того, параллелизм, на данном этапе, в то время как хорошо описано в обобщенной теории, является в большой степени зависимым платформы и реализацией. Параллелизм в Perl на поле AIX не является той же игрой как параллелизм в приложении Winforms C++. У них может быть вся теория в мире под их поясами, но если она требуется для задания, затем у них должны быть глубокие знания платформы, на которой они, как ожидают, будут использовать ее также.

2
ответ дан 8 December 2019 в 14:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: