阻塞隊列 BlockingQueue BlockingQueue的四組API 1.運行時會拋異常的 2.返回一個Boolean值不拋異常的 3.阻塞,等待(一直等?。。。?4...
需要留意: 多線程并發(fā)的情況下,使用Callable,運行結(jié)果會做緩存處理,提高效率。 獲取返回標識可能會遇到阻塞,一般會放在程序最后執(zhí)行,或者采取異步調(diào)用方式。
ArrayList線程不安全 運行結(jié)果: 從運行結(jié)果來看,在多線程并發(fā)的情況下使用ArrayList是極其不安全的,它會引發(fā)java.util.ConcurrentModif...
如何判斷鎖的是什么? 首先我們先來看下面的代碼。思考下面兩個問題。 synchronized 鎖的對象是方法的調(diào)用者!就上面代碼而言,看電影和玩游戲兩個方法是用的TV對象的一...
傳統(tǒng)Synchronized版 問題:上訴代碼只是跑了A和B兩個線程,請問,若再多幾個線程,如四個線程,8個線程,線程是否還安全?答案是不安全的。那應(yīng)該如何解決呢? 虛假喚醒...
傳統(tǒng)的Synchronized鎖 線程就是一個單獨的資源類,它沒有任何的附屬操作!先看不加Synchronized多線程并發(fā)下的買票問題: 運行結(jié)果: 很明顯可以看到,多個線...
RabbitMQ概念 生產(chǎn)者與消費者 Producer:消息的生產(chǎn)者 Consumer:消息的消費者 Queue 消息隊列,提供了 FIFO 的處理機制,具有緩存消息的能力。...
什么是Actor模型? Actor 模式是一個解決分布式計算的數(shù)學(xué)模型,其中 Actor 是基礎(chǔ),它能回應(yīng)接收到消息,能夠自我決策,創(chuàng)建更多的 Actor,發(fā)送更多的消息,決...
什么是MQ? Message Queue(MQ),消息隊列中間件。很多人都說:MQ 通過將消息的發(fā)送和接收分離來實現(xiàn)應(yīng)用程序的異步和解偶,這個給人的直覺是——MQ 是異步的,...
redis分發(fā)訂閱原理 redis是使用c語言實現(xiàn)的,通過分析redis源碼里的public.c文件,了解發(fā)布和訂閱機制的底層實現(xiàn),藉此加深對redis的理解。redis通過...
什么是緩存穿透?(查不到) 緩存穿透是指,用戶想要查詢一個數(shù)據(jù),發(fā)現(xiàn)redis內(nèi)存數(shù)據(jù)庫沒有,也就是緩存沒有命中,于是向持久層數(shù)據(jù)庫中查詢,發(fā)現(xiàn)也沒有,于是本次查詢失敗。當用...
概述 redis提供兩種方式進行持久化,一種是RDB持久化(原理是將Reids在內(nèi)存中的數(shù)據(jù)庫記錄定時dump到磁盤上的RDB持久化),另外一種是AOF持久化(原理是將Rei...
概述 Redis 集群可以在一組 redis 節(jié)點之間實現(xiàn)高可用性和 sharding。在集群中會有 1 個 master 和多個 slave 節(jié)點。當 master 節(jié)點失...
單位設(shè)置 配置文件units單位對大小寫不敏感。 include(包含) 可以理解為Java的import,可以配置多個其他的配置文件在該配置下。 網(wǎng)絡(luò)(network)及通...
watch 命令 redis使用watch命令來實現(xiàn)樂觀鎖的操作。首先,我們先來看一下單個線程情況下,加上樂觀鎖,正常執(zhí)行事務(wù)的情況: 接下來,我們開啟另一個線程,在之前的線...