維護有感3 -- 被濫用的synchronized
同樣要先看一段程式碼,這是一段方法內部的程式碼:
先不說程式碼中變數的命名是否顯得蒼白,主要的問題就是這個synchronized 使用,
temp 是一個區域性變數,一個方法內的區域性變數,而java的方法的執行每次呼叫都會產生不懂的方法內區域性變數,那真不知道 synchronized (temp)的用處在什麼地方。
[size=medium][color=blue]補充:[/color][/size]
java中方法是執行緒安全的,對於區域性變數來說,根本沒有必要用synchronized,如果需要用到synchronized來做特殊處理,那肯定是自己的設計出了問題,要選擇修改自己的策略,而不是通過這樣的辦法。甚至本人覺得區域性變數的就是用StringBuilder也不需要做同步,用同步肯定自己策略本身就是危險的。
StringBuffer temp = new StringBuffer(64);
synchronized (temp) {
String cgbh = Decoder.getParameter(request, "cgbh");
temp.append("INSERT INTO LWZZWCRXX (ID, XMBH, ZGH, XM) (SELECT ");
temp.append(" IDC_U_KYMIS.KY_XMRYXX_SEQ.NEXTVAL, CGBH, '");
temp.append(UserToken.getUserid(request)).append("','");
temp.append(UserToken.getUser(request).getUserName() + "'");
temp.append(" FROM ( ");
temp.append("SELECT NVL(TO_CHAR(MAX(TO_NUMBER(CGBH))), '").append(cgbh).append("' || '0000') CGBH");
temp.append(" FROM LWZZ WHERE CGBH LIKE '").append(cgbh).append("%'))");
return temp.toString();
}
先不說程式碼中變數的命名是否顯得蒼白,主要的問題就是這個synchronized 使用,
temp 是一個區域性變數,一個方法內的區域性變數,而java的方法的執行每次呼叫都會產生不懂的方法內區域性變數,那真不知道 synchronized (temp)的用處在什麼地方。
[size=medium][color=blue]補充:[/color][/size]
java中方法是執行緒安全的,對於區域性變數來說,根本沒有必要用synchronized,如果需要用到synchronized來做特殊處理,那肯定是自己的設計出了問題,要選擇修改自己的策略,而不是通過這樣的辦法。甚至本人覺得區域性變數的就是用StringBuilder也不需要做同步,用同步肯定自己策略本身就是危險的。
相關文章
- 資料維護和基礎架構維護-有感架構
- 大資料技術不能被平臺濫用,必須維護消費者的合法權益大資料
- 被濫用的 GUI 設計模式GUI設計模式
- WPF-理解被濫用的MVVMMVVM
- Yurii談翻譯(七)怎樣翻譯更地道:被濫用的“被”
- Redis功能強大,那也頂不住被濫用啊!Redis
- 《自然》雜誌專訪Bengio:謹防AI被濫用的危險AI
- httprunner 的 java 實現,有沒有感興趣的朋友,一起維護一下HTTPJava
- 企業網站被攻擊篡改的安全維護方案網站
- 歐洲刑警組織:ChatGPT很有可能被濫用於網路犯罪ChatGPT
- Web攻擊流行“雲安全”技術被濫用機率將增Web
- 被質疑“濫用許可和特權”,AWS 和 Oracle 被 MariaDB 點名吐槽Oracle
- 避免單例濫用單例
- 不要濫用IT規劃
- 近20年3867篇AI論文大調研:有缺陷的指標被濫用,好的指標被忽視AI指標
- 蘋果企業開發者計劃被濫用 發現數十款不良app蘋果APP
- 一個濫用程式碼的案例
- java synchronized 保護執行緒安全Javasynchronized執行緒
- 不要濫用懶載入
- 轉 介面濫用問題
- 軟體的維護
- Oracle 索引的維護Oracle索引
- 備用ATC系統執行維護
- 維護網路安全秩序 騰訊7款App被責令整改APP
- 不可見索引在表DML操作過程中依然被維護索引
- dataguard系列之六------備用資料庫的維護資料庫
- Linux下MySQL安裝和日常維護(3)LinuxMySql
- 什麼?!90%的ThreadLocal都在濫用或錯用!thread
- Testing on the Toilet:不要濫用MockMock
- Mysql常用的維護 SQLMySql
- [92年 大齡阿姨的求助帖] 介面用例維護
- Pew:74%的美國人對大選期間科技公司阻止其平臺被濫用沒有信心
- ERP裝置維護系統——改善維護工作的法寶(轉)
- 計算機程式的思維邏輯 (66) - 理解synchronized計算機synchronized
- OCR維護命令
- RAC維護命令
- mysql 管理維護MySql
- 系統維護