黑莓版的SimpleDateFormat,net.rim.device.api.i18n.SimpleDateFormat線程安全嗎?我知道java.text.SimpleDateFormat不是,但沒有提及如果net.rim.device.api.i18n.SimpleDateFormat是線程安全的或不。如果我們假設它沒有被聲明,那麼它不是線程安全的?Blackberry的SimpleDateFormat線程安全嗎?
1
A
回答
1
API沒有提及。
它建議使用DateFormat.html#getInstance(int)這是某種工廠方法。
所以你可以做的是從不同的線程調用這個方法多次使用相同的參數,看看它是否總是返回相同的對象(與==比較)。如果是,則DateFormat可能會緩存返回的SimpleDateFormat實例。所以,因爲他們的API允許重用,你可能會認爲它是線程安全的。
2
除非一類的Javadoc明確指出,它是線程安全的,你應該假設它不是。即使你可以看看源代碼和類似乎是線程安全的,也可能是是非線程在未來的版本...
爲DateFormat.getInstance(int)
的Javadoc說:
返回:新
SimpleDateFormat
提供樣式的實例。
所以,如果你使用這種方法,你是保證拿到類的新實例。假設您不在線程之間共享它,線程安全不應該成爲問題。
相關問題
- 1. Java MessageFormat類線程安全嗎? (而不是SimpleDateFormat)
- 2. Enum.TryParse - 線程安全嗎?
- 3. HtmlCleaner線程安全嗎?
- 4. 在Python線程安全嗎?
- 5. 是DatagramSocket.send線程安全嗎?
- 6. XCGLogger線程安全嗎?
- 7. jCaptcha線程安全嗎?
- 8. 列表線程安全嗎?
- 9. 這些線程安全嗎?
- 10. ValueExpression線程安全嗎?
- 11. SecureRandom線程安全嗎?
- 12. KeyPairGenerator.generateKeyPair()線程安全嗎?
- 13. 是TcpClient.Available線程安全嗎?
- 14. Swift Calendar線程安全嗎?
- 15. 此線程安全嗎?
- 16. 線程安全(是嗎?)
- 17. RegSetValueEx線程安全嗎?
- 18. SecurityContextHolder線程安全嗎?
- 19. PCRE pcre_exec線程安全嗎?
- 20. SoapHttpClientProtocol線程安全嗎?
- 21. python logger線程安全嗎?
- 22. SynchronizationContext.Post()線程安全嗎?
- 23. Interop.Domino dll線程安全嗎?
- 24. udev線程安全嗎?
- 25. JMS QueueSender線程安全嗎?
- 26. NSSortDescriptor線程安全嗎?
- 27. github3py線程安全嗎?
- 28. NSKeyedArchiver線程安全嗎?
- 29. MSMQ線程安全嗎?
- 30. org.exolab.castor.xml.schema.Schema線程安全嗎?
有趣的是,現在我腦海中出現了一個普遍的問題,即如何測試線程安全的API? – Vivart 2010-07-30 10:48:23
也許這就是你的下一個SO問題:)一般來說,你可以檢查源代碼(如果提供的話)或編寫一個JUnit測試,這將測試數百萬次來自10-20個線程的調用API並測試數據損壞或拋出的異常。雖然不是100%確定的答案。 – cherouvim 2010-07-30 11:47:48