我想知道如何在同时调用时确保以下方法是安全的。当从两个不同的角色调用它时,图像可以混合并保存在该方法下将返回给定URL的不同图像。
def readFromURL(url: URL): Box[(Array[Byte], String, String)] = {
tryo {
val image = ImageIO.read(url)
val mimeType = url.openConnection().getContentType()
val imageType = mimeType.split("/")(1)
val baos = new ByteArrayOutputStream()
ImageIO.write(image, imageType, baos)
val byteArray = baos.toByteArray()
val fileName = org.apache.commons.codec.digest.DigestUtils.md5Hex(byteArray)
baos.flush()
baos.close()
(byteArray, mimeType, fileName)
}
}
答案 0 :(得分:2)
这看起来对我来说是线程安全的,org.apache.commons.codec.digest.DigestUtils也被宣传为线程安全。