ImageIO.read并发

时间:2013-08-25 16:49:37

标签: scala concurrency actor javax.imageio

我想知道如何在同时调用时确保以下方法是安全的。当从两个不同的角色调用它时,图像可以混合并保存在该方法下将返回给定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)
  }
}

1 个答案:

答案 0 :(得分:2)

这看起来对我来说是线程安全的,org.apache.commons.codec.digest.DigestUtils也被宣传为线程安全。