मेरे पास BufferedImage
उदाहरण, एक मुख्य छवि और कुछ छवियां हैं जो मुख्य छवि पर getSubImage
पर कॉल करके बनाई गई हैं। उपनिवेश ओवरलैप नहीं करते हैं। मैं उपनिवेश में संशोधन भी कर रहा हूं और मैं इसे प्रति थ्रेम्स में एक से अधिक थ्रेड में विभाजित करना चाहता हूं।अलग-अलग धागे में BufferedImage के अलग-अलग क्षेत्रों को अपडेट करने के लिए सुरक्षित?
BufferedImage
से प्रत्येक उदाहरण (और अपने संबंधितWritableRaster
औरSampleModel
) केवल एक ही धागे से पहुँचा जा सकता है: कैसेBufferedImage
,Raster
औरDataBuffer
काम करते हैं, इस सुरक्षित होना चाहिए की मेरी समझ क्योंकि से।
- साझा
ColorModel
अपरिवर्तनीय है DataBuffer
कोई फ़ील्ड कि संशोधित किया जा सकता है (केवल बात यह है कि बदल सकते हैं समर्थन सरणी के तत्वों है।)- अलग धागे में एक सरणी के संबंध तोड़ना खंडों में संशोधन करना सुरक्षित है।
हालांकि मुझे दस्तावेज़ में कुछ भी नहीं मिला है जो कहता है कि यह करना निश्चित रूप से सुरक्षित है। क्या मुझे लगता है कि यह सुरक्षित है? मुझे पता है कि बच्चे Raster
एस की प्रतियों पर काम करना संभव है लेकिन मैं स्मृति बाधाओं के कारण इसे टालना पसंद करूंगा।
अन्यथा, क्या मूल छवि के क्षेत्रों की प्रतिलिपि किए बिना ऑपरेशन थ्रेड-सुरक्षित बनाना संभव है?
फिर छवि को विभाजित करने का कोई फायदा नहीं है। – finnw
मैं विलंबता को कम रखने के लिए एकाधिक थ्रेड में एक छवि के सबमिटेज को प्रोसेस करना जारी रखना पसंद करूंगा। यहां तक कि अगर यह पता चला है कि इसे उपनिवेशों की प्रतिलिपि बनाना आवश्यक है। – finnw