高并發(fā),聽(tīng)起來(lái)高大上的一個(gè)詞匯,在身處于互聯(lián)網(wǎng)潮的社會(huì)大趨勢(shì)下,高并發(fā)賦予了更多的傳奇色彩.首先,我們可以看到很多招聘中,會(huì)提到有高并發(fā)項(xiàng)目者優(yōu)先.高并發(fā),意味著,你的前雇主,有很大的業(yè)務(wù)層面的需求,而且也能怎么你在整個(gè)項(xiàng)目中的一個(gè)處理邏輯的能力體現(xiàn).那么,你真的知道什么是高并發(fā)嗎?這不是一個(gè)很簡(jiǎn)單的話題.高并發(fā),往往會(huì)牽扯到很多的問(wèn)題,如何才能快速響應(yīng),如何處理各個(gè)線程之間的交互,如何完成邏輯之間的高負(fù)載運(yùn)轉(zhuǎn),甚至,一個(gè)系統(tǒng),如果沒(méi)有做好前期高并發(fā)的合理配置,整個(gè)產(chǎn)品會(huì)遇到瓶頸,以及不可預(yù)期的多次后果.
那么本系列博客將重點(diǎn)從最基本的理論基礎(chǔ),線程時(shí)間,再到項(xiàng)目實(shí)戰(zhàn),講述,一個(gè)高并發(fā)系統(tǒng)的完整技術(shù)棧.
本文是JAVA高并發(fā)系列的基礎(chǔ)篇第二篇--線程同步
本系列博文:
第一篇:[高并發(fā)]Java高并發(fā)編程系列開(kāi)山篇--線程實(shí)現(xiàn)
一 線程同步基本概述
同步: 什么是線程同步,可以簡(jiǎn)單認(rèn)為,當(dāng)有兩個(gè)以上的線程,需要訪問(wèn)共同的一個(gè)資源的時(shí)候,我們需要確保每一個(gè)線程都能使用到資源.那么問(wèn)題來(lái)了,怎么實(shí)現(xiàn),這就可以使用到我們的這個(gè)概念--同步.
同步,其實(shí)關(guān)鍵的一點(diǎn),也就是監(jiān)視器,它的作用就是監(jiān)視每一個(gè)線程發(fā)生的每次動(dòng)作行為.下面我們看看同步到底怎么去在代碼中實(shí)現(xiàn).