【转】多线程之有状态对象和无状态对象
生活随笔
收集整理的這篇文章主要介紹了
【转】多线程之有状态对象和无状态对象
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有狀態對象和無狀態對象
參考:https://www.cnblogs.com/xubiao/p/6567349.html
一. 基本概念
1. 什么是有狀態對象
有狀態對象指的是有數據存儲功能的類的對象。(就是類含有字段或屬性,他的對象含有實例變量,可以保存數據)
有狀態對象(Stateful Bean),就是有實例變量的對象,可以保存數據,是非線程安全的。
2. 什么是無狀態對象
無狀態對象就是一次操作的對象,不能保存數據的對象。
無狀態對象(Stateless Bean),指的就是沒有實例變量的對象,不能保存數據,是不可變類,是線程安全的對象。
二. 代碼實現有狀態對象和無狀態對象
1. 有狀態對象的實現
- Test類
- StatefulBeanService類
2. 無狀態對象的實現
- TestDao類
- StatelessBeanService類
三. Spring中的有狀態和無狀態
(1)有狀態的bean都使用property作用域
(2)無狀態的bean則使用singleton的作用域
四. Servlet是單例模式
Servlet體系結構是建立在Java多線程機制上的,他的生命周期是由Web容器負責的,一個Servlet類在Application中只有一個實例存在,也就是說有多個線程都在使用這個實例。這是單例模式的應用。無狀態的單例模式是線程安全的,但是如果我們在Servlet中使用了實例變量,那么就變成了有狀態的,就變成了singleton+有狀態,這個就是非線程安全的。
總結一下:
總結
以上是生活随笔為你收集整理的【转】多线程之有状态对象和无状态对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中信信用卡推荐办卡下卡率高吗
- 下一篇: 【转】静态类与非静态类