本人java開發,今天在研究秒殺問題的時候,忽然間腦子裏就產生了這樣的思考。
衆所周知,Spring默認是單例模式,那麼單例模式有什麼優缺點呢?
優勢一:建立的對象較少!在Tomcat模型爲BIO
時,會對每個請求建立一個線程,若是建立的線程數較大,每個線程中都有@Autowire這種註解,那麼建立的對象就會很是之多。另外,若是對象B注入到對象A的屬性中,若是對象A被建立了多個對象,那麼對象B也會被建立多個,層層依賴。
固然若是是NIO,就沒有單例的必要了,由於它只會用一個線程了來處理數據請求,這也註定NIO不能用來IO密集型操做。java
缺點一:因爲只有一個對象,若是屬於類的成員變量,則會被屢次調用,相似於類的靜態變量。
缺點二:BIO中,若是你在這個對象中的方法上使用了Synchronized
,表明鎖住的是該對象。線程