簡體   English   中英

createTempFile是線程安全的嗎?

[英]Is createTempFile thread-safe?

我正在使用Java 6。

調用createTempFile(類java.io.File)的兩個線程是否可能獲得相同的臨時文件?

獲得答案的最佳方法是查看源代碼。 起初在createTempFile中沒有任何同步,但是為了生成臨時文件名,它使用的是SecureRandom,即ThreadSafe。 然后,除非你真的不走運,否則你的文件總會得到一個不同的名字。

最重要的是,createTempFile實現正在循環,生成新文件名,直到創建文件。 當然,文件創建委托給本機文件系統操作,我們可以假設它是線程安全的。

File.createTempFile方法實際上創建了該文件。 線程只返回它單獨創建的文件名。 (您可以查看源代碼以查看此內容)

存在這種可能性,但它是如此遙遠,以至於考慮到它是浪費精力......如果應用程序需要擔心這種維持其正常功能的可能性,那么我會把它作為一個標志,表明有一些東西在釣魚它的設計。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM