Показаны сообщения с ярлыком RSDN. Показать все сообщения
Показаны сообщения с ярлыком RSDN. Показать все сообщения

четверг, 3 декабря 2009 г.

Собеседование по Java Concurrency

Это перепост моего поста с rsdn.ru.
-------------------------------------
В последнее время во многих вакансиях на Java Developer появилось требование знания Java Concurrency/Multithreading. В ответ многие разработчики тут же добавили такую строчку себе в резюме. Я как человек, который проводит собеседования, хотел бы развеять некоторые недоразумения относительно этого термина.
Все проекты связанные с многопоточностью я бы разделил на 3 класса: использующие многопоточность, основанные на многопоточности и те, которые и есть сама многопоточность. К первому классу("использующие") я бы отнес проекты, которые предполагают работу в многопоточной среде. Пример: есть класс BlaBlaBlaFactory, в документации необходимо указать, может ли эта фабрика использоваться одновременно несколькими потоками или нет. Если нет, то сделать ее потокобезопасной с помощью ReentrantLock. Ко второму классу ("основанные на") я бы отнес проекты, в которых использование нескольких потоков является одним из ключевых моментов. Пример: многопоточный кодек видео формата H.264. К третьему классу ("являются ей") я бы отнес проекты, в корне что-то меняющие в отношении потоков. Пример: написание runtime-среды для языка Scala (на Java) с реализацией легковесных потоков и своеобразной моделью памяти.

четверг, 8 октября 2009 г.

Дискуссия на RSDN: reordering volatile and non-volatile

Тут обсуждение книги вылилось в нашу с Дмитрием дискуссию о возможности/допустимости reordering volatile and non-volatile. Дмитрий дает интересные данные по C#/C++ Memory Model и интересную ссылку на еще один документ по JMM:
http://rsim.cs.illinois.edu/Pubs/popl05.pdf

P.S. Моя точка зрения там немного радикальна, просто я пляшу от того как МОЖНО программировать, а не от того как НАДО. Т.е. не смоит мои слова воспринимать как руководство к действию. Естественно, ВНЕДРЯТЬ НАМЕРЕННО в свой код data race - дурной тон.

пятница, 25 сентября 2009 г.

RSDN.ru: Что такое модель памяти? И с чем её едят?

    Тут пост с rsdn.ru "Что такое модель памяти? И с чем её едят?" Дмитрий Вьюков кратко намечает что такое Memory Model для ПРОЦЕССОРА. Сам текст краток, но вот ссылки!

    "Более детальную информацию по вопросу можно найти в документации по процессорам.
Например
    для архитектур IA-32 и Intel-64 это "Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3A: System Programming Guide, Part 1":
http://www.intel.com/design/processor/manuals/253668.pdf
(CHAPTER 7 MULTIPLE-PROCESSOR MANAGEMENT)
    Для Itanium это "Intel® Itanium® Architecture Software Developer’s Manual Volume 2: System Architecture":
http://download.intel.com/design/Itanium/manuals/24531805.pdf
(MP Coherence and Synchronization)
    Для SPARC это "The SPARC Architecture Manual":
www.sparc.org/standards/SPARCV9.pdf
(8 Memory Models)
    Так же хорошее введение в упорядочивание инструкций современными процессорами "Memory Ordering in Modern Microprocessors, Part I & II" (by Paul E. McKenney):
http://www.linuxjournal.com/article/8211
http://www.linuxjournal.com/article/8212"

четверг, 10 сентября 2009 г.

RSDN: потери на перезагрузке кэша данных

Отпостился в RSDN на тему 'потери на перезагрузке кэша данных'.
http://rsdn.ru/forum/java/3531888.1.aspx

Golovach Ivan

RSDN: скорость context switch

Отпостился в RSDN на тему скорость переключения контекста на современных процессорах'.
http://rsdn.ru/forum/java/3531425.1.aspx

Golovach Ivan

RSDN: reordering volatile and non-vilatile

Отпостился в RSDN на тему 'reordering volatile and non-volatile'.
http://rsdn.ru/forum/java/3532424.1.aspx

Golovach Ivan