1.首先理解幾個多執行緒的概念
(1)執行緒安全:保證執行緒的排程順序不變,以免引起資料不一致問題
(2)執行緒同步:幾個執行緒協調同步,當幾個執行緒共享同乙份資源時,調整執行順序,當前乙個執行緒完成時,再執行下乙個
(3)何為高併發:指程式在短時間內集中處理大量操作的情況,現實場景如:秒殺活動,搶票活動
2.解決方案
(1)負載均衡:負載到多個tomcat上進行緩衝,使用nginx的引數配置:upstream www.***,com
(2)悲觀鎖機制:1.採用執行緒同步關鍵字synchronized**塊
優點:對執行資料操作的方法加鎖,排斥其他請求,其他執行緒需要進行等待狀態。
缺點:當高併發狀態下,系統需要在同一時間內處理大量資料,需要等待鎖的時間加長,系統最大連線數即將耗盡
(3)採用fifo佇列機制,將所有請求放入乙個請求佇列中,獲取佇列中的指定請求。
(4)樂觀鎖機制:資料庫有個版本號,version ,符合再進行操作 ;
redis中的watch
(5)業務層面上的解決方案過載保護:拒絕使用者請求,保護伺服器。3.乙個賬號對應接收乙個請求4.監測某個ip的請求介面速率,當乙個機器ip請求速率過快時,則判定為惡意刷5.彈出驗證碼,篩選掉機器刷
innoDb 的多執行緒併發調優
innodb 本來就好似對高併發設計的,但是不是能應對所有的高併發,你可以對部分就像調優 首先說明3個引數 innodb thread concurrency 併發執行緒數量 innodb thread sleep delay innodb concurrency tickets innodb用自己...
多執行緒高併發
修飾靜態方法鎖的是class,非靜態鎖方法鎖的是this,只有拿到這個物件才可以繼續執行 synchronized是可重入鎖 執行緒1的方法1呼叫執行緒2的方法2,判斷是同一把鎖,在同乙個執行緒,可以呼叫。synchronized的鎖公升級 hotsport 鎖公升級過程 保證執行緒可見性 mesi...
多執行緒高併發
個人總結,帶有個人主觀,請選擇性 1,實現 runable 2,使用 thread 3,執行緒池建立 executorse newcachedthreadpool 其實哪有那麼多建立方式,本質上都是實現了runable 介面。只列出大部分使用的方法,並未代表所有執行緒方法,後續會新增實際的例子,以供...