Результаты поиска
Каковы некоторые хорошие ресурсы для изучения потокового программирования?
С появлением multicore CPUs на рабочем столе навыки многопоточности станут ценным активом для программистов. Можете ли вы порекомендовать какие-то хорошие ресурсы (книги, учебные пособия, веб-сайты и т. д.) для программиста, который хочет узнать о потоковом программировании?
Каковы некоторые хорошие ресурсы для изучения потокового программирования?
С появлением multicore CPUs на рабочем столе навыки многопоточности станут ценным активом для программистов. Можете ли вы порекомендовать какие-то хорошие ресурсы (книги, учебные пособия, веб-сайты и т. д.) для программиста, который хочет узнать о потоковом программировании?
Проект Darkstar Реалистичен?
Проект Darkstar был темой ежемесячной встречи JavaSIG в офисах Google в NYC прошлой ночью. Для тех, кто не знает (вероятно, все), Project Darkstar-это платформа для многопользовательских онлайн-игр, которая пытается позаботиться обо всех "hard stuff." основная идея заключается в том, что вы пишете логику своего игрового сервера таким образом, что все операции разбиваются на крошечные задачи. Вы передаете эти задачи в Project Darkstar framework, который обрабатывает их распределение на определенный узел в кластере, любые проблемы параллелизма и, наконец, сохранение данных.
По-видимому, делать такие вещи-это совсем другая проблема для видеоигр, чем для корпоративных приложений. Джим Уолдо, который читал лекцию, утверждает, что MMO игры имеют отношение DB чтения/записи 50/50,, тогда как корпоративные приложения больше похожи на 90% чтения, 10% записи. Он также утверждает, что большинство существующих MMOs хранят все в памяти exlcusively, и только сбрасывают в DB каждые 6 часов so. Это означает, что если сервер выходит из строя, вы потеряете всю работу с момента последнего дампа DB.
Теперь, сам проект звучит действительно круто,но я не думаю, что индустрия примет его. Во-первых, вы должны написать свой код сервера в Java. Клиентский код может быть написан на чем угодно (Джим утверждает, что ActionScript 3 является самым популярным, а затем C++), но серверный материал должен быть Java. Звучит хорошо для меня, но у меня действительно создается впечатление, что все в игровой индустрии ненавидят Java.
Во-вторых, в отличие от других отраслей, где разработчики предпочитают использовать существующие фреймворки и библиотеки, ребята в игровой индустрии, похоже, любят писать все сами. Мало того, они любят переписывать все для каждой новой игры, которую они производят. Все начинает меняться, когда разработчики используют Havok для физики, Unreal Engine 3 в качестве своей платформы и т. д. но по большей части это выглядит так, как будто все еще является собственностью.
Итак, ребята из проекта Darkstar просто теряют свое время? Может ли общая структура, подобная этой, действительно работать для сложных игр с требуемой производительностью? Даже если это действительно работает, готовы ли игровые компании использовать его?
Erlang-параллелизм стиля для других языков
Какие библиотеки существуют для других языков программирования, чтобы обеспечить модель параллелизма в стиле Erlang (процессы, почтовые ящики, сопоставление шаблонов) и т. д.)?
Примечание: меня особенно интересуют вещи, которые должны быть похожи на Erlang, а не просто любая библиотека потоков или очередей.
Лучший способ получить объекты из BlockingQueue в параллельной программе?
Каков наилучший способ получить объекты из BlockingQueue в параллельной программе, не попадая в состояние гонки? В настоящее время я делаю следующее, И я не уверен, что это лучший метод:
BlockingQueue<Violation> vQueue;
/*
in the constructor I pass in a BlockingQueue object
full of violations that need to be processed - cut out for brevity
*/
Violation v;
while ( ( v = vQueue.poll(500, TimeUnit.MILLISECONDS) ) != null ) {
// do stuff with the violation
}
Я еще не достиг состояния гонки... но я не слишком уверен, что это действительно безопасно.
Лучшая архитектура для обработки изменений файловой системы?
Вот такой сценарий:
Я пишу приложение, которое будет следить за любыми изменениями в определенном каталоге. Этот каталог будет заполнен тысячами файлов в минуту каждый с "almost" уникальным GUID. Формат файла такой:
GUID.dat где GUID = = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (внутреннее содержимое не имеет отношения, но это просто текстовые данные)
Мое приложение будет представлять собой форму, которая имеет одно текстовое поле, которое показывает все файлы, которые добавляются и удаляются в режиме реального времени. Каждый раз, когда появляется новый файл, я должен обновить textbox с этим файлом, но сначала я должен убедиться, что этот полу-уникальный GUID действительно уникален, если это так, обновите textbox с этим новым файлом.
Когда файл удаляется из этого каталога, убедитесь, что он существует, а затем удалите его, обновите textbox соответствующим образом.
Проблема в том, что я использую его .NET filewatcher и кажется, что есть внутренний буфер, который взрывается каждый раз, когда входит (buffersize + 1)-й файл. Я также попытался сохранить внутренний список в своем приложении и просто добавить каждый файл, который входит, но позже выполните проверку unique-GUID, но без кубиков.