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