2013-2-24

這週末處理之前開發時遇到的問題,把思路梳理一下:

系統利用axis2+spring框架作爲接口開發的標準,由於spring在實例化bean的時候,默認bean都爲單例模式,也就是說webservice的實現類都是單例的,這樣高併發的請求到達服務器時,就會遇到線程之間共享數據的問題:

系統存在的缺陷是多個線程共享一塊成員變量(此成員變量是接口實現類中的成員變量)這樣當A線程需要讀變量的時候,B線程在寫,就會造成混亂,也就是線程之間不安全。

我暫時的解決辦法是在接口方法中聲明一個臨時變量,這樣多個線程之間就可以相互不受干擾,因爲多個線程在執行時都有一塊屬於自己的內存空間,線程執行時會把他用到的臨時變量放在自己的內存空間裏,不受其他線程的影響。程序從上到下執行時,利用函數傳參的方式來共享這個臨時變量的值,這樣就可以做到多線程之間相互獨立,一個線程縱向共享數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章