① java多線程訪問資料庫怎麼優化啊,並發很大
個人覺得高寫入並發的話先用緩存緩沖一下,可以合並的寫入合並成批量寫入可以管一些用但終歸寫入量很大的話還是要在資料庫端優化了,把並發寫均衡到多台伺服器上,應該沒有別的辦法了。如果瓶頸不再資料庫那就是應用伺服器處理能力不足,升級應用伺服器。
② java中所謂的並發處理是什麼意思
是多線程,多個線程並發執行
處理方法:創建線程對象,創建啟動線程方法(start),等main方法線程結束後,自動調用start執行並處理線程體中內容(start中內容)。(註:「並發處理」並不是同時處理,是交替處理或是同步線程交替、等待)
線程還可以中斷、和別的線程同步等
線程的幾種狀態:新建態(NEW)、等待態1(sleep中)(TIMED_WAITING)、等待態2(wait中)(WAITING)、阻塞態(BLOCKED)、終止態(TERMINATED)
③ java 如何並發更新資料庫同一條數據
分2分情況:
一.普通的單應用並發,使用關鍵字synchronized就可以實現。
二.多應用或多台並發,這時在由於2者並非同一應用,使用synchronized並不能滿足要求。此時,有下面幾種方案:
資料庫行級鎖,優點是簡單粗暴,缺點是容易死鎖,非資料庫專業人事建議不使用。
寫入請求分離成一個獨立項目,這就回到了第一種情況,優點是實現技術難度低,缺點是高並發性能相對不是很高。
使用分布式事務管理,這個是目前高並發處理的最優方案了。
最後要說的沒有差的方案,每個方案都有其適用環境,請根據自身需求選擇對應方案。
④ java高並發,如何解決,什麼方式解決,高並發
首先,為防止高並發帶來的系統壓力,或者高並發帶來的系統處理異常,數據紊亂,可以以下幾方面考慮:1、加鎖,這里的加鎖不是指加java的多線程的鎖,是指加應用所和資料庫鎖,應用鎖這邊通常是使用redis的setnx來做,其次加資料庫鎖,因為代碼中加了應用所,所以資料庫不建議加悲觀鎖(排他鎖),一般加樂觀鎖(通過設置一個seq_no來解決),這兩個鎖一般能解決了,最後做合理的流控,丟棄一部分請求也是必不可少的
⑤ JAVA高並發問題,大數據,頻繁I/O操作。
建議採用緩存處理,按照你說的這種數據量,基於redis的緩存完全可以滿足,存取速度可以10W+的,另外,擬採用的hashMap 是ConcurrentHashMap還是其他,頁面展示是增量查詢還是直接所有的再查詢一次,socket數據接收你是用的netty還是mina,這都需要經過仔細的斟酌考慮設計的。有這么大的並發的需求,完全可以考慮做分布式集群的,估計這只是領導想要的目標吧
⑥ 庫存管理系統用什麼數據結構java語言
庫存管理系統採用的數據結構是:Myeclipse開發,java語言開發,資料庫採用mysql,ssh框架。根據查詢相關公開信息顯示,庫存管理系統是一套完善的WEB網頁管理系統,對理解JSPjava編程開發語言有幫助,系統具有完整的源代碼和資料庫,系統主要採用B/S模式開發。應用技術是java|jsp+SQLServer2008,開發工具:Myeclipse或Eclipse、jdk、tomcat。
⑦ 為什麼Java程序在並發的情況下資料庫會出現重復記錄
這是一個高並發,多線程問題
如果數據粒度沒有設計到行級鎖,
比方說A這條記錄 是100,並發情況下兩個人拿到A記錄100 一個更新為70,一個更新為80
實際是拿走了50的量,但是因為是並發情況 導致數據不正確。所以這個地方是一個數據鎖的概念,至於為什麼會這樣,道理也很簡單,一個排隊做事情,一個並行做事情,能一樣嗎?