Ну, Graphics2D
и Graphics
- это абстрактные классы без какого-либо состояния, поэтому теоретически они могут быть потокобезопасными, но это будет зависеть от фактической реализации / подкласса, который вы получите.
Однако, если ваш код рисования может привести к наложению, обработка нескольких потоков может оказаться довольно сложной (если вы можете упорядочить фигуры и при этом не требуется прозрачность, вы могли бы использовать некоторые z-буферизация).Таким образом, я не стал бы беспокоиться о многопоточном рендеринге на том же холсте (графическом объекте), который поставил бы вопрос спорным.
Вместо этого я бы предложил разделить рендеринг на несколько отдельных задач и объединить результаты в конце.
В зависимости от того, что вы на самом деле визуализируете, я мог бы представить 2 основных подхода:
- разделить рендеринг на несколько плиток и объединить их в конце
- , если вы 'рендеринг сложных форм, создание которых стоит дорого, затем рендеринг их в промежуточные изображения, а затем объединение их одним потоком, просто рендеринг этих промежуточных изображений на конечный холст (для этого может потребоваться упорядочение промежуточных шагов)