0

次のメソッドが同時に呼び出されたときに安全であることを確認する方法を知りたいです。2 つの異なるアクターから呼び出されると、画像が混同され、メソッドの下に保存され、特定の 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)
  }
}
4

1 に答える 1

2

これは私にはスレッドセーフに見え、org.apache.commons.codec.digest.DigestUtils もスレッドセーフとして宣伝されています。

于 2013-08-25T21:43:33.523 に答える