2013-01-10 40 views
7

Tôi đã học được rằng phiên làm việc của Hibernate được cho là luồng an toàn. Bất cứ ai có thể nói rõ về cách nó hoạt động như chủ đề an toàn trong một ứng dụng web và làm thế nào tất cả các phương pháp được đồng bộ hóa hoặc bất cứ điều gì khác?Lý do tại sao Hibernate's sessionFactory là thread an toàn

+0

có thể điều này sẽ giúp bạn: http://stackoverflow.com/questions/14411860/why-use-only-one-sessionfactory-object-per-application – Falaque

Trả lời

10

The internal state of a SessionFactory is immutable. Hầu hết các vấn đề xảy ra đồng thời xảy ra do chia sẻ các đối tượng có trạng thái có thể thay đổi. Một khi đối tượng là bất biến, trạng thái bên trong của nó được đặt vào việc tạo và không thể thay đổi được. Vì vậy, nhiều chủ đề có thể truy cập đồng thời và yêu cầu phiên.

Tuy nhiên, Phiên là đối tượng không an toàn, bạn không thể chia sẻ nó giữa các chuỗi.

+0

Hơn nữa tại sao sessionfactory là luồng vì nguyên tắc ngủ đông của nguồn dữ liệu đơn lẻ – LowCool

Các vấn đề liên quan