高併發產生的應用場景:在同時很多人同時訪問乙個業務一樣。例如很多人都想上廁所但是只有乙個廁所,每次只能就去乙個人乙個人結束後另乙個人才能上廁所這個屬於單執行緒產生的效果
以上兩種場景唯一不變的是廁所每次只有一人能進行,還有上廁所的人,變的是廁所變多了
訊息佇列:訊息佇列相當於將上廁所的每個人都加入到佇列中嗎。
例如:有乙個人像要上廁所但是廁所被占用此時訊息佇列就顯得格外重要,
1.它可以監聽需要上廁所的人是否完結,能更快的通知給等待上廁所的人
2.它可以監聽需要上廁所的人,假如有兩個人在等待 則佇列的先進先出原則體現出來了 先等的人會優先被分配到廁所
監聽需要監聽的是所有的佇列 加入有的佇列中消費者都被消費了空出了那麼其他佇列則可以就近原則去消費
個人觀點:併發指的是一種業務場景(問題),多執行緒是一種解決問題的方式(辦法)
多執行緒高併發
修飾靜態方法鎖的是class,非靜態鎖方法鎖的是this,只有拿到這個物件才可以繼續執行 synchronized是可重入鎖 執行緒1的方法1呼叫執行緒2的方法2,判斷是同一把鎖,在同乙個執行緒,可以呼叫。synchronized的鎖公升級 hotsport 鎖公升級過程 保證執行緒可見性 mesi...
多執行緒高併發
個人總結,帶有個人主觀,請選擇性 1,實現 runable 2,使用 thread 3,執行緒池建立 executorse newcachedthreadpool 其實哪有那麼多建立方式,本質上都是實現了runable 介面。只列出大部分使用的方法,並未代表所有執行緒方法,後續會新增實際的例子,以供...
訊息佇列處理高併發
用mq來將耗時比較長或者耗費資源的請求排隊,非同步處理,減輕伺服器壓力增加穩定性。如果是高併發的實時請求,我個人覺得不適用這個方案。如果是為了高併發,我覺得應該朝解決高併發的方向考慮。集群 分布式 動靜分離 資料庫讀寫分離之類的。web的話,只能客戶端頁面輪訓處理結果。因為,據我個人了解啊,現在we...