如今框架橫行,Spring 已經(jīng)是非常成熟的容器體系,我們在日常開發(fā) JavaWeb 的工作中,大多已經(jīng)不需要考慮多線程的問題,這些問題都已經(jīng)在Spring容器中實現(xiàn),框架的意義就是讓程序員們可以專注于邏輯的實現(xiàn)。然而這種編程工作是非常無趣無味的,如果長期從事這個工作,技術(shù)不一定見長,業(yè)務(wù)知識一定很熟悉!= =但說實在的,我并不喜歡這類工作,因為這種工作大多情況下知識對代碼的簡單復(fù)制,或是簡單的一些編寫,并沒有什么真正的創(chuàng)造性,不會給人成就感。
需求背景
我們的項目,是 Mysql+ElasticSearch 做的一個數(shù)據(jù)庫和搜索引擎,項目經(jīng)理提出需要做一個用于重建 ES 搜索數(shù)據(jù)的接口,這個任務(wù)很光榮的交給了我。
在功能的編寫過程當(dāng)中,我突然思考這樣一個問題,因為我們 Web 項目本身是多線程的,那如果在同一時間段,有多個請求同時發(fā)起,那同時發(fā)起 ES 的重建,對于 ES 來說,可能會產(chǎn)生一些莫名其妙的問題。
所以我感到非常高興,因為這個問題,似乎不是聽起來的那么簡單。于是乎我想到了,要加入同步鎖了。
最開始的思考:
最開始我只是很簡單的想,直接在對應(yīng)的 Service 層寫一個方法,然后直接加一個
synchronized(this)
在整個方法體上?! ?/p>
1 @Override2 public synchronized int rebuiltBountyData() throws Exception {3 ...4 }
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26