線程是一個(gè)重量級(jí)的對(duì)象,應(yīng)該避免頻繁創(chuàng)建和銷毀。原因:創(chuàng)建線程需要調(diào)用操作系統(tǒng)API,然后os為線程分配資源 線程池使用的生產(chǎn)者-消費(fèi)者模式:線程池的使用者是生產(chǎn)者,線程池本...
線程是一個(gè)重量級(jí)的對(duì)象,應(yīng)該避免頻繁創(chuàng)建和銷毀。原因:創(chuàng)建線程需要調(diào)用操作系統(tǒng)API,然后os為線程分配資源 線程池使用的生產(chǎn)者-消費(fèi)者模式:線程池的使用者是生產(chǎn)者,線程池本...
CountDownLatch 應(yīng)用場(chǎng)景:一個(gè)線程等待多個(gè)線程的場(chǎng)景。 這個(gè)應(yīng)用場(chǎng)景很容易理解,假設(shè)有三個(gè)線程,分別是A,B,C; C要等待A,B完成后再執(zhí)行,很容易地思路:A...
StampedLock支持三種模式:寫鎖、悲觀讀鎖、樂觀讀 寫鎖和悲觀讀鎖與ReadWriteLock的寫鎖、讀鎖語義類似。StampedLock 里的寫鎖和悲觀讀鎖加鎖成功...
Semaphore 信號(hào)量模型:一個(gè)計(jì)數(shù)器,一個(gè)等待隊(duì)列,三個(gè)方法 init():設(shè)置計(jì)數(shù)器的初始值。 down():計(jì)數(shù)器的值減 1;如果此時(shí)計(jì)數(shù)器的值小于 0,則當(dāng)前線程...
并發(fā)經(jīng)驗(yàn)告訴我們:首先使用Java SDK中的并發(fā)包,迫不得已再使用低級(jí)的同步原語(synchronized/Lock/Semaphore等)。避免過早優(yōu)化,等出現(xiàn)性能瓶頸后...
操作系統(tǒng)線程生命周期 初始狀態(tài)(init)、可運(yùn)行狀態(tài)(runnable)、運(yùn)行狀態(tài)(running)、休眠狀態(tài)(waiting)和終止?fàn)顟B(tài)(terminate) java線...
等待-通知機(jī)制:如果線程要求的條件不滿足,則線程阻塞自己,進(jìn)入等待狀態(tài);當(dāng)線程要求的條件滿足后,通知等待的線程重新執(zhí)行。 在上一節(jié)中使用while(!actr.apply(t...
可見性、原子性、有序性是并發(fā)問題的三個(gè)關(guān)鍵因素。 可見性:一個(gè)線程對(duì)共享變量的修改,另外一個(gè)線程能夠立刻看到。 可見性問題一般由CPU緩存引起。每顆 CPU 都有自己的緩存,...
日志中的Redo Log和BinLog 參考:http://www.itdecent.cn/p/4bcfffb27ed5mysql通過WAL(write-ahead log...
使用select…for update會(huì)把數(shù)據(jù)給鎖住,不過我們需要注意一些鎖的級(jí)別,MySQL InnoDB默認(rèn)行級(jí)鎖。行級(jí)鎖都是基于索引的,如果一條SQL語句用不到索引是不...
Https的加密機(jī)制 https運(yùn)行于SSL之上,SSL運(yùn)行在TCP之上,是添加了認(rèn)證和加密機(jī)制的HTTP。端口為443 共享秘鑰加密和公開秘鑰加密(其實(shí)就是對(duì)稱加密和非對(duì)稱...
參考 我沒有三顆心臟 http://www.itdecent.cn/p/7382c0a843ffhttp://www.itdecent.cn/p/cd9d0927be35...
java訪問權(quán)限 方法重寫規(guī)則: (1)返回類型與被重寫方法的返回類型可以不相同,但是必須是父類返回值的派生類 (2)訪問權(quán)限不能比父類中被重寫的方法的訪問權(quán)限更低。...