Синхронизация Java [закрывается]

Любой с опытом в 3D рендеринге должен быть знаком с деревья BSP . Обычно это - метод путем структурирования 3D сцены, чтобы быть управляемым для рендеринга знания координат камеры и переноса.

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

, Другими словами, это - метод разбивания полигонов сложной формы в выпуклые наборы или меньших полигонов, состоящих полностью из неуглов отражения (углы, меньшие, чем 180В °). Для более общего описания разделения пространства посмотрите, что пространство делит.

Первоначально, этот подход был предложен в 3D компьютерной графике для увеличения эффективности рендеринга. Некоторые другие приложения включают работающие геометрические операции с формами (конструктивная стереометрия) в CAD, обнаружении коллизий в робототехнике и 3D компьютерных играх и других компьютерных приложениях, которые включают обработку сложных пространственных сцен.

7
задан user 24 August 2009 в 11:06
поделиться

4 ответа

Он предотвращает выполнение кода, заключенного в фигурные скобки, несколькими потоками. Пока один поток выполняет этот код, остальные блокируются. Когда первый поток завершится, один из заблокированных потоков запустит синхронизированный код и т. Д.

Почему вы хотите это сделать? Код внутри блока может изменять объекты таким образом, чтобы они находились в несовместимом состоянии до выхода из блоков. Таким образом, второй входящий поток найдет несовместимые объекты. С этого момента следует хаос.

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

13
ответ дан 6 December 2019 в 05:03
поделиться

Обратите внимание, что следующие два эквивалентны:

synchronized void someMethod() {
    // ...
}

и

void someMethod() {
    synchronized (this) {
        // ...
    }
}
11
ответ дан 6 December 2019 в 05:03
поделиться

Он предотвращает одновременный доступ к ресурсу. У Sun есть довольно хорошее описание с примерами.

16
ответ дан 6 December 2019 в 05:03
поделиться

Из ныне несуществующего Краткого справочника по Java, ранее находившегося на http://www.janeg.ca/scjp/threads/synchronized.html :

Синхронизация потоков Эффект сериализации доступа к блокам код, работающий в потоке. Сериализация в этом контексте означает давая по одной нити право для выполнения определенного блока кода.

0
ответ дан 6 December 2019 в 05:03
поделиться
Другие вопросы по тегам:

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