Tôi muốn biết đó đối tượng có thể được tái sử dụng (trong cùng một tài liệu hoặc khác nhau) khi sử dụng Java API cho việc xử lý XML, JAXP:Java và XML (JAXP) - Điều gì về bộ nhớ đệm và an toàn luồng?
DocumentBuilderFactory
DocumentBuilder
XPath
Node
-
ErrorHandler
Có nên bộ nhớ cache các đối tượng hoặc làm việc triển khai JAXP đã nhớ cache họ?
Là (tái) sử dụng của các đối tượng thread-safe?
Trả lời
Tái sử dụng
Trong cùng một sợi các đối tượng có thể và nên được tái sử dụng. Ví dụ, bạn có thể sử dụng DocumentBuilder để phân tích cú pháp nhiều tài liệu.
Chủ đề An toàn
DocumentBuilderFactory sử dụng để explicity nêu nó không được chủ đề an toàn, tôi tin rằng điều này vẫn còn đúng:
An thực hiện các lớp DocumentBuilderFactory là KHÔNG đảm bảo được thread an toàn. Đó là số cho ứng dụng của người dùng để đảm bảo về việc sử dụng DocumentBuilderFactory từ hơn một chuỗi.
Từ Stack Overflow, DocumentBuilder không xuất hiện để được đề an toàn trong hai. Tuy nhiên trong Java SE 5 một phương pháp thiết lập lại được bổ sung để cho phép bạn sử dụng lại DocumentBuilders:
- Is DocumentBuilder.parse() thread safe?
- http://download-llnw.oracle.com/javase/6/docs/api/javax/xml/parsers/DocumentBuilder.html#reset()
- http://www.junlu.com/msg/289939.html (khoảng DocumentBuilder.thiết lập lại())
XPath không phải là thread an toàn, từ Javadoc
Một đối tượng XPath không phải là thread-safe và không lõm. Nói cách khác, nó là trách nhiệm của ứng dụng để chắc chắn rằng một đối tượng XPath không phải là sử dụng từ hơn một thread tại bất kỳ thời gian nhất định, và trong khi đánh giá phương pháp được gọi, ứng dụng có thể không đệ quy gọi đánh giá phương pháp.
Node không phải là thread an toàn, từ trang web Xerces
là thực hiện Xerces DOM thread-an toàn không? Số DOM không yêu cầu triển khai phải là chủ đề an toàn. Nếu bạn cần truy cập DOM từ nhiều chủ đề, bạn cần để thêm khóa thích hợp vào mã ứng dụng của mình.
ErrorHandler là một giao diện, vì vậy nó tùy thuộc vào thực hiện lại giao diện để đảm bảo thread-an toàn. Đối với gợi ý về thread-an toàn mà bạn có thể bắt đầu ở đây:
- 1. dữ liệu URI và bộ nhớ đệm
- 2. Chuỗi an toàn C11 đối với các hàm trả về con trỏ tới bộ đệm tĩnh
- 3. "Bộ nhớ đệm" là gì?
- 4. các trường cuối cùng và an toàn luồng
- 5. Các chức năng thành viên tĩnh và an toàn luồng
- 6. Chức năng thành viên tĩnh và an toàn luồng
- 7. Java StringBuilder và An toàn Chủ đề
- 8. Tuần tự hóa trong java: tự động an toàn luồng?
- 9. <ui: param và bộ nhớ đệm
- 10. NoClassDefFoundError với bộ nhớ đệm mùa xuân và aspectj
- 11. Mã an toàn và không an toàn
- 12. Sự khác nhau giữa đề an toàn và an toàn
- 13. Sự khác nhau giữa bộ nhớ đệm và bộ nhớ cache trống là gì?
- 14. Điều gì cấu thành sự an toàn không đồng bộ
- 15. Vấn đề về luồng bộ nhớ FMod
- 16. Sự khác biệt giữa bộ nhớ đệm bảo thủ và bộ đệm ẩn tiến bộ trong joomla 2.5 là gì?
- 17. @PersistenceContext EntityQuản lý an toàn luồng trong Spring và Java EE
- 18. Sử dụng Danh mục XML có thư viện Java sử dụng JAXP trong nội bộ
- 19. Giải thích về bộ nhớ đệm/bộ nhớ đệm độc lập
- 20. Luồng có an toàn không?
- 21. Điều gì về đa luồng trong SQLite của Android?
- 22. Nhà điều hành luồng quá tải an toàn >>
- 23. Java Tomcat bật bộ nhớ đệm
- 24. Định nghĩa chức năng Haskell và mảng bộ nhớ đệm
- 25. Sử dụng ổi để lưu bộ nhớ đệm an toàn hiệu năng cao
- 26. Làm thế nào để theo dõi bộ nhớ trống (bao gồm bộ đệm và bộ đệm) trong java?
- 27. Ghi nhật ký an toàn đa luồng
- 28. Điều gì về việc đệm tệp FileInputStream?
- 29. Làm thế nào để sử dụng bộ đệm chặn riêng biệt để truy cập cửa hàng an toàn và không an toàn trong Magento?
- 30. Việc triển khai pool bộ nhớ an toàn cho luồng không bị chặn
gì về bộ nhớ đệm/tái sử dụng/thread-an toàn của các đối tượng Node? – MRalwasser
Các nút DOM không được đảm bảo an toàn chỉ. –
Địa chỉ này được chỉ định ở đâu? – MRalwasser