Re: Собеседование по Java Concurrency
От: insighter ОАЭ http://upwork.com/freelancers/~016e5772d90cce5fd1
Дата: 31.12.09 09:45
Оценка: 1 (1)
а какого рода у вас в фирме задачи по многопоточности, что такой серьезный список вопросов?
java шараги -> enterprise галеры, банки -> highload microservices + bigdata/ml
Re[2]: Собеседование по Java Concurrency
От: markovskiy  
Дата: 02.01.10 07:48
Оценка:
Здравствуйте, Golovach Ivan, Вы писали:

Долгое время даже и не знал что написать в ответ, хотя мысли разные приходили.
В основном ваши вопросы затрагивают около-фундаментальные темы вперемешку с Java API,
который можно открыть и почитать или посмотреть исходные коды.

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

The Art of Multiprocessor Programming — у меня, кстати, есть эта книга и я её читал, но она не очень интересна —
посмотреть, конечно, можно. На самом деле, судя по вашим вопросам, вы еще очень многих интересных фундаментальных книг не читали.

т.е. не все вопросы мне кажутся бесмысленными, но сократить логически список нужно.
Re[2]: Собеседование по Java Concurrency
От: Golovach Ivan Украина http://kharkovitcourses.blogspot.com
Дата: 03.01.10 14:57
Оценка: 1 (1)
Здравствуйте, insighter, Вы писали:

I>а какого рода у вас в фирме задачи по многопоточности, что такой серьезный список вопросов?


Последний проект что был — высоконагруженный распределенный игровой сервер. Собственно основные "многопоточные абстрактности" появились когда начали делать его модульным. Конкретно:
— игра — это просто jar-ник брошенный в папку (а всего на одном сервере параллельно висит от 40 до 160 типов игр, и у каждого несколько инстансов для каждого игрока);
— "акции"(как в казино — система лотерей) — это просто листенеры на события происходящие в играх(старт, ставка, выигрыш, отмена, проигрыш, и т.д.), получающие ивенты по самописной in-process очереди сообщений.

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

Собственно, многопоточность(в том числе терминология, алгоритмы — не только Java API) — это инструментарий, владея им проекты получаются "красивее", быстрее, лаконичнее и, зачастую, функциональнее. Это как Spring, для разработки серверного приложения на Java, в принципе, никакой контейнер не является НЕОБХОДИМЫМ(ни IoC, ни EJB, ни ???), все можно сделать вручную, изобрести кучу велосипедов. Но заметно проще опираться на разработки других. Так и тут, владея инструментарием автоматически начинаешь им пользоваться.

Собственно, пришел к тому, что работа становится следствием умений, а не наоборот. Т.е. ни "Какая работа заставила выучить многопоточность?", а "За какую работу Вы взялись зная многопоточность(алгоритмы, криптографию, etc)?".

Перед этим работал в паре небольших стартапов, сейчас в свободном плавании, рассматриваю предложения
Re[3]: Собеседование по Java Concurrency
От: Golovach Ivan Украина http://kharkovitcourses.blogspot.com
Дата: 03.01.10 15:09
Оценка:
Здравствуйте, markovskiy, Вы писали:

M>Здравствуйте, Golovach Ivan, Вы писали:


M>Долгое время даже и не знал что написать в ответ, хотя мысли разные приходили.

M>В основном ваши вопросы затрагивают около-фундаментальные темы вперемешку с Java API,
Согласен. Но это же собеседование на работу, а не на PhD в Стенфорд.

M>который можно открыть и почитать или посмотреть исходные коды.

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

M>Или, к примеру, Java программист не обязан знать Erlang — не понятно откуда появился этот вопрос.

Собственно не совсем понятно что вообще "должен знать Java программист". Только вот Twitter использует Scala, а Facebook — Erlang. Да и близкое знакомство с концепцией actor-ов не помешает.

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

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

M>The Art of Multiprocessor Programming — у меня, кстати, есть эта книга и я её читал, но она не очень интересна -

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

M>т.е. не все вопросы мне кажутся бесмысленными, но сократить логически список нужно.

На собеседовании на работу зачастую большинство вопросов кажется "бессмысленными", есть такая беда.
С удовольствием прочитаю Ваш список дополнительных вопросов.
Re[3]: Собеседование по Java Concurrency
От: Other Sam Россия  
Дата: 04.01.10 20:23
Оценка:
...
> Последний проект что был — высоконагруженный распределенный игровой
> сервер. Собственно основные "многопоточные абстрактности" появились
> когда начали делать его модульным. Конкретно:
> — игра — это просто jar-ник брошенный в папку (а всего на одном сервере
> параллельно висит от 40 до 160 типов игр, и у каждого несколько
> инстансов для каждого игрока);
> — "акции"(как в казино — система лотерей) — это просто листенеры на
> события происходящие в играх(старт, ставка, выигрыш, отмена, проигрыш, и
> т.д.), получающие ивенты по самописной in-process очереди сообщений.
>
> Предпоследний проект — сомописный транзакционный менеджер. Понадобился,
> когда увязывали работу с несколькими сайтами через один "суперсайт".
> Особенность была в том, что в каждый момент времени было огромное
> количество незавершенных транзакций (как на commit-е так и на
> rollback-е), иногда транзакцию не удавалось завершить буквально сутками
> (сайт просто отказывается работать именно с этим аккаунтом) и с тем что
> не для всех действий возможно было написать rollback-действие (скажем,
> если на счет сайта перечислили деньги, то отменить перевод нельзя
> никаким образом, возможно только взять другой услуги на эту же сумму) —
> из-за этого и других "особенностей" писали сами.
>
> Собственно, многопоточность(в том числе терминология, алгоритмы — не
> только Java API) — это инструментарий, владея им проекты получаются
> "красивее", быстрее, лаконичнее и, зачастую, функциональнее. Это как
> Spring, для разработки серверного приложения на Java, в принципе,
> никакой контейнер не является НЕОБХОДИМЫМ(ни IoC, ни EJB, ни ???), все
> можно сделать вручную, изобрести кучу велосипедов. Но заметно проще
> опираться на разработки других. Так и тут, владея инструментарием
> автоматически начинаешь им пользоваться.
>
> Собственно, пришел к тому, что работа становится следствием умений, а не
> наоборот. Т.е. ни "Какая работа заставила выучить многопоточность?", а
> "За какую работу Вы взялись зная многопоточность(алгоритмы,
> криптографию, etc)?".
>
> Перед этим работал в паре небольших стартапов, сейчас в свободном
> плавании, рассматриваю предложения

Судя по представленным проектам компания действительно делала довольно
сложные вещи. Значит у нее есть разработчики высокой квалификации. И тем
не менее, она ищит супер-пупер разработчика. Страннно.
Во-первых это дорого. Я, к примеру, не смог бы пройти такое
собеседование, но меньше 2 тыщь баксов и не стал бы рассматривать. А
тот, кто сможет, думаю и пятью тысячами останется недовольным.
Во-вторых — как компания собирается интегрировать такого разработчика в
комманду? Такие разработчики не смогут воплощать чью-то архитектуру. Они
конечно смогут, если требуемая архитектура совпадает с их видением — но
тогда зачем они вам? А если поставить нового разработчика в комманду
выше своих старых сотрудников — это посеет неприязнь между руководством
компании, старыми сотрудниками и новым разработчиком. Как минимум будет
нарушение коммуникации.

"работа становится следствием умений, а не наоборот" — О ЧЕМ ЭТО
ВООБЩЕ??? Пойдите в любой институт, найдите какого-нибудь аспиранта с
кафедры философии, и попросите объяснить вам, что является следствием, а
что причиной (в этой паре работа-умение).

Вернемся к компании, которая ищет супер-пупер разработчика по
Concurrency. Что же могло заставить компанию, которая справляется с
решением сложных проектов искать супер-разработчика? Его дорого искать,
его дорого содержать, его трудно интегрировать в комманду. Мне кажется,
что проблема в "текучке".
Думаю у компании был разработчик (а может быть несколько). Компания
сделала один или несколько продуктов которые хорошо "выстрелили"
(принесли большую прибль). Но компания не поделилась этой приблью с
разработчиком.
А что, мы и не обещали! Это же мы (компания) рисковали своими деньгами,
несколько лет платили зарплату, медстраховку, отпуски, офис... Мы же
регулярно индексировали зарплату. Ну и что, что теперь мы каждый месяц
зарабатываем по миллиону баксов в месяц. Нет, мы не можем заплатить
разработчикам по миллиону — нам же для этого придется несколько месяцев
оставаться без прибыли. Мы даже по 100 тыщь не можем заплатить — это же
огомные деньги. Да и на каком основании — мы так не договаривались!
В итоге — мотивация ушла, разработчики или ушли, или не могут работать
(из-за отсутствия мотивации). Важная часть успеха — опыт разработчиков —
утрачен...

А компания ищет техническое решение социальной проблемы. Придется
огорчить такую компанию — социальные проблемы решаются социальными методами.

Остается только опуститься на примитивный уровень, и сказать, что старые
разработчики ушли из-за своей жадности.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Собеседование по Java Concurrency
От: Golovach Ivan Украина http://kharkovitcourses.blogspot.com
Дата: 04.01.10 21:32
Оценка:
Здравствуйте, Other Sam, Вы писали:

OS>Судя по представленным проектам компания действительно делала довольно

OS>сложные вещи. Значит у нее есть разработчики высокой квалификации. И тем
OS>не менее, она ищит супер-пупер разработчика. Страннно.
Это чисто субъективно — но это требования не к супер-пупер разработчику.
Достаточно прочитать около "правильных" 10 книг.

OS>Во-первых это дорого. Я, к примеру, не смог бы пройти такое

OS>собеседование, но меньше 2 тыщь баксов и не стал бы рассматривать.
Да, Java senior меньше 2000$, полагаю, нигде не получает.

OS>тот, кто сможет, думаю и пятью тысячами останется недовольным.

Ну я, например, остаюсь доволен суммой меньшей чем 5 тонн. В принципе если
знание многопоточки добавляет +500 к зп — уже неплохо.
+100 за XML, +300 за криптографию, +300 за Oracle — так на сеньерскую зп и набегает

OS>Во-вторых — как компания собирается интегрировать такого разработчика в

OS>комманду? Такие разработчики не смогут воплощать чью-то архитектуру. Они
OS>конечно смогут, если требуемая архитектура совпадает с их видением — но
OS>тогда зачем они вам? А если поставить нового разработчика в комманду
OS>выше своих старых сотрудников — это посеет неприязнь между руководством
OS>компании, старыми сотрудниками и новым разработчиком. Как минимум будет
OS>нарушение коммуникации.
Возможно Ваши выводы справедливы для большой оутсорсной компании, но
в стартапах немного другая атмосфера. Нет такого процесса как "интеграция разработчика".
На собеседовании прямо говорят — вот что мы делаем, такие задачи решаем.
Если интересно — давая работать к нам. И боец идет на решения интересных задач.
Атмосфера обсуждения чье решение лучше присутствует постоянно, если докажешь, что
твое лучше — внедряют его.

OS>"работа становится следствием умений, а не наоборот" — О ЧЕМ ЭТО

OS>ВООБЩЕ??? Пойдите в любой институт, найдите какого-нибудь аспиранта с
OS>кафедры философии, и попросите объяснить вам, что является следствием, а
OS>что причиной (в этой паре работа-умение).
Это верно для навыков, получаемых в результате работы. Тут согласен.
Но Вы же и сами можете за сезон прочитать пяток книг по криптографии
и теперь выбирать работу с ее использованием. Идти по некоторому своему
плану развития.

OS>Вернемся к компании, которая ищет супер-пупер разработчика по

OS>Concurrency. Что же могло заставить компанию, которая справляется с
OS>решением сложных проектов искать супер-разработчика? Его дорого искать,
OS>его дорого содержать, его трудно интегрировать в комманду. Мне кажется,
OS>что проблема в "текучке".
...
OS>Остается только опуститься на примитивный уровень, и сказать, что старые
OS>разработчики ушли из-за своей жадности.
Не единственный вариант. Я обычно сталкивался с тем, что создается команда, скажем
2 сениора, 3 мида, 3 юниора. Работает, все ок, но потом в результате увеличения
количества работы сеньеры начинают захлебываться и требуют от командования
еще, скажем 1 сениора, и пару мидлов. Ну вот этого сениора и подбирают долго и нудно.
Т.е. Вы не рассматриваете вариант роста команды, а только замещения ее членов.
Re[3]: Собеседование по Java Concurrency
От: mselez  
Дата: 04.01.10 21:52
Оценка:
высоконагруженный распределенный

Означает ли это, что все имеющееся в наличии у компании "железо" работает с перегрузкой, а добавить еще "железа" почему-то нет возможности ( ), и вот приходится погружаться на "молекулярный" уровень.
Re[4]: Собеседование по Java Concurrency
От: C0s Россия  
Дата: 04.01.10 22:43
Оценка:
Здравствуйте, mselez, Вы писали:

M>высоконагруженный распределенный


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


кстати, не исключено
мне доводилось поставлять решения клиенту, который потихоньку по мере роста выбрал лимит железа в дата-центре, который был ему удобен экономически и географически. начиная с какого-то момента, стало ясно, что это ещё не пик нагрузки, но разом переместить все данные куда-то ещё было практически невозможно, клиент в силу своих экономических внутренних аргументов решил пойти по пути оптимизации софта...
Re[4]: Собеседование по Java Concurrency
От: Golovach Ivan Украина http://kharkovitcourses.blogspot.com
Дата: 05.01.10 00:03
Оценка: 21 (2)
Здравствуйте, mselez, Вы писали:

M>высоконагруженный распределенный


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


1)
Железо было неплохое, но мы уперлись в архитектурные ограничения. Одно из требований было держать 400tps. Но проблема в том, что запросы от пользователей не независимы. Есть много мест, где без вдумчивого подхода происходит сериализация запросов и никакими 400tps не пахнет — падает до 5-15tps. Конкретный пример — модуль "Акции" содержал акцию "Джек-пот", если кратко, то это отчисления с каждой ставки некоторого процента в джек-пот. Тот пользователь, чье отчисление превысило некоторую(секретную) сумму джек-пота — забирает его("сорвать джек-пот"). Сумма существенная, скажем 50.000$. Хитрость в том, что, допустим, каждый игрок отчисляет по 1$, но мы не можем так просто 50.000-ному запросу дать сорвать джек-пот, так как если откатятся предыдущие транзакции, то наш игрок уже не 50.000ный, а, скажем, 49.990-ый. Т.е. в момент потенциального срыва джек-пота приходится либо сериализировать запросы, либо приостанавливать потенциального победителя и вешать его на ожидание коммитов предидущих запросов, но пока 50.000ный не сорвал джек-пот, не понятно что делать с 50.001, 50.002, 50.003 ... — запросами. Ведь любой из них может сорвать джек-пот в случае роллбека скажем 49.999 запроса (а по условиям мы должны были сообщать об этом в запросе-победителе). Т.е. происходит сразу же нарастание очереди ожидания запросов.

А теперь представьте, что сервер будет сдан "сейчас", а модули акций будут дописываться "потом", в течении всей жизни проекта (ну такие вот условия у этого бизнеса). И многие акции должны иметь возможность использовать "глобальные интегральные" характеристики, типа — кол-во запросов до моего, сумма ставок до моей, абсолютный номер моего запроса. И вот при разработке API игрового сервера для подключаемых акций и вылазили все эти "оптимистические блокировки", "условные ожидания", "copy-on-write" но скорее не в смысле java.util.concurrent.*, а в смысле архитектурных решений.

2)
Продукт писался коробочный, так что тут чем ниже требования к железу, тем желательнее для компании.
Re[5]: Собеседование по Java Concurrency
От: remark Россия http://www.1024cores.net/
Дата: 05.01.10 10:05
Оценка:
Здравствуйте, Golovach Ivan, Вы писали:

GI>Железо было неплохое, но мы уперлись в архитектурные ограничения. Одно из требований было держать 400tps. Но проблема в том, что запросы от пользователей не независимы. Есть много мест, где без вдумчивого подхода происходит сериализация запросов и никакими 400tps не пахнет — падает до 5-15tps. Конкретный пример — модуль "Акции" содержал акцию "Джек-пот", если кратко, то это отчисления с каждой ставки некоторого процента в джек-пот. Тот пользователь, чье отчисление превысило некоторую(секретную) сумму джек-пота — забирает его("сорвать джек-пот"). Сумма существенная, скажем 50.000$. Хитрость в том, что, допустим, каждый игрок отчисляет по 1$, но мы не можем так просто 50.000-ному запросу дать сорвать джек-пот, так как если откатятся предыдущие транзакции, то наш игрок уже не 50.000ный, а, скажем, 49.990-ый. Т.е. в момент потенциального срыва джек-пота приходится либо сериализировать запросы, либо приостанавливать потенциального победителя и вешать его на ожидание коммитов предидущих запросов, но пока 50.000ный не сорвал джек-пот, не понятно что делать с 50.001, 50.002, 50.003 ... — запросами. Ведь любой из них может сорвать джек-пот в случае роллбека скажем 49.999 запроса (а по условиям мы должны были сообщать об этом в запросе-победителе). Т.е. происходит сразу же нарастание очереди ожидания запросов.


Раз уж пошла такая пьянка, а чем вызвана возможность ролбека? Вроде как запрос уже весь пришёл, после его валидации (которая обычно может проводиться полностью независимо), что может вызвать роллбек?
И ещё интересно почему в сериализованном режиме обрабатывалось всего 10 транзакций в секунду? Судя по описанию тут вроде никаких особо тяжёлых рассчётов нет. Ввод-вывод, парсинг запроса, формировнаие ответа — вполне может идти параллельно; а сама обработка вроде не особо тяжёлая...


1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[5]: Собеседование по Java Concurrency
От: chand0s  
Дата: 07.01.10 02:05
Оценка:
Здравствуйте, Golovach Ivan, Вы писали:

GI>Это чисто субъективно — но это требования не к супер-пупер разработчику.

GI>Достаточно прочитать около "правильных" 10 книг.

Вы про какие-то абстрактные книги говорите или имеете в виду вполне конкретные книги? Если конкретные — приведите пожалуйста список.
Re[6]: Собеседование по Java Concurrency
От: markovskiy  
Дата: 07.01.10 03:41
Оценка:
Здравствуйте, chand0s, Вы писали:

C>Здравствуйте, Golovach Ivan, Вы писали:


GI>>Это чисто субъективно — но это требования не к супер-пупер разработчику.

GI>>Достаточно прочитать около "правильных" 10 книг.

C>Вы про какие-то абстрактные книги говорите или имеете в виду вполне конкретные книги? Если конкретные — приведите пожалуйста список.


Заходите на Amazon.com, выбираете в Search раздел Books, печатаете в строке запроса "Parallel Programming".
На билжайший год книг хватит.
Re[7]: Собеседование по Java Concurrency
От: Аноним  
Дата: 09.01.10 12:08
Оценка:
толсто.
Re[6]: Собеседование по Java Concurrency
От: Golovach Ivan Украина http://kharkovitcourses.blogspot.com
Дата: 15.01.10 20:22
Оценка: 3 (1)
Здравствуйте, chand0s, Вы писали:

C>Здравствуйте, Golovach Ivan, Вы писали:


GI>>Это чисто субъективно — но это требования не к супер-пупер разработчику.

GI>>Достаточно прочитать около "правильных" 10 книг.

C>Вы про какие-то абстрактные книги говорите или имеете в виду вполне конкретные книги? Если конкретные — приведите пожалуйста список.


тут[http://rsdn.ru/forum/java/3633148.1.aspx
Автор: Golovach Ivan
Дата: 10.12.09
] я уже писал
"- Java Concurrency in Practice
— Doug Lee. Concurrent Programming in Java. Design Principles and Patterns — Addison Wesley — 2nd edition
— The Art of Multiprocessor Programming (Maurice Herlihy, Nir Shavit)
— по алгоритмам: The little book of semaphores = http://www.greenteapress.com/semaphores/
— по структурам данных: "Concurrent Data Structures" = http://www.cs.tau.ac.il/~shanir/concurrent-data-structures.pdf
— по JMM возьмите отсюда — http://kharkovconcurrencygroup.blogspot.com/2009/09/jmm.html
— advanced JMM = очень полное и детальное описание модели памяти Java (Java Memory Model, JMM) с описанием целей, которые ставились при разработке, и компромиссных решений, которые приходилось принимать = http://unladen-swallow.googlecode.com/files/journal.pdf (thanks to Remark)
— это тусовка вообще всех товарищей из Java concurrency community = http://cs.oswego.edu/pipermail/concurrency-
interest/"
В принципе первых трех уже вполне достаточно. Если Вы стартуете "с нуля" в многопоточности явы перед этими книгами возможно стоит просмотреть Java Thread Programming(Sams) или Java Threads(OReilly)
Re[7]: Собеседование по Java Concurrency
От: insighter ОАЭ http://upwork.com/freelancers/~016e5772d90cce5fd1
Дата: 17.03.11 20:39
Оценка:
перечисленные книжки все в основном по прогопоточности в java, а вот какие-нибудь фундаментальные имеются?
Изобретут вон в дотнете какие-нибудь новые concurrency паттерны — опять переучивать?
Или все так и будет сводится к тем же семафорам и CAS-ам на аппартном уровне и соотв-но паттерны описанные в java мало чем будут отличаться от реализаций в других языках?

C>>Вы про какие-то абстрактные книги говорите или имеете в виду вполне конкретные книги? Если конкретные — приведите пожалуйста список.

GI>тут[http://rsdn.ru/forum/java/3633148.1.aspx
Автор: Golovach Ivan
Дата: 10.12.09
] я уже писал

GI>"- Java Concurrency in Practice
GI>— Doug Lee. Concurrent Programming in Java. Design Principles and Patterns — Addison Wesley — 2nd edition
GI>— The Art of Multiprocessor Programming (Maurice Herlihy, Nir Shavit)
GI>— ...
java шараги -> enterprise галеры, банки -> highload microservices + bigdata/ml
Re[8]: Собеседование по Java Concurrency
От: swein2 http://swein2.blogspot.com/
Дата: 14.10.11 14:51
Оценка: 13 (2)
Топик конечно старый,
но раз уж я на него набрел вчера то не поленился и написал ответы у себя http://swein2.blogspot.com/2011/10/concurrency.html
Re[9]: Собеседование по Java Concurrency
От: LeonidV Ниоткуда http://vygovskiy.com
Дата: 14.10.11 17:25
Оценка:
Читать ответы не стал (лучше самому разобраться), а вот за ссылки на книги огромное спасибо.
http://jvmmemory.com — простой способ настройки JVM
Re[9]: Собеседование по Java Concurrency
От: Безон Великобритания  
Дата: 16.10.11 10:55
Оценка:
Здравствуйте, swein2, Вы писали:

S>Топик конечно старый,

S>но раз уж я на него набрел вчера то не поленился и написал ответы у себя http://swein2.blogspot.com/2011/10/concurrency.html
16 — неправильно. isAlive тоже создает happens-before
-----
Re[10]: Собеседование по Java Concurrency
От: swein2 http://swein2.blogspot.com/
Дата: 17.10.11 09:17
Оценка:
Здравствуйте, Безон, Вы писали:

Б>Здравствуйте, swein2, Вы писали:


S>>Топик конечно старый,

S>>но раз уж я на него набрел вчера то не поленился и написал ответы у себя http://swein2.blogspot.com/2011/10/concurrency.html
Б>16 — неправильно. isAlive тоже создает happens-before

залез в спеку.. и правда isAlive там упомянут..
Re: Собеседование по Java Concurrency
От: Sorc17 Россия  
Дата: 18.10.11 15:45
Оценка:
Здравствуйте, Golovach Ivan, Вы писали:

После первых 10 вопросов закрыл вкладку в слезах!
Для нас [Thompson, Rob Pike, Robert Griesemer] это было просто исследование. Мы собрались вместе и решили, что ненавидим C++ [смех].
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.