最近遇到應用服務器不能訪問的問題,通過抓取堆疊,發現應用服務器中用于處理請求的執行緒都處在WAINTING 或者BLOCKED狀態,通過分析有45個執行緒呼叫ehcache的get()函式,獲取讀鎖(然后一直WAITING,等待一把鎖(假設為鎖A)),還有3個執行緒呼叫ehcache的removeAll()函式,獲取寫鎖(也是一直WAITING,等待鎖A)。這個48執行緒導致了其他執行緒的阻塞。
而在整個堆疊中只有parking waiting for A的資訊,而沒有任何的執行緒持有鎖A,問題是這個鎖A去哪了,為什么所有的執行緒都拿不到它?
請大神們幫忙!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/104538.html
標籤:Java SE
上一篇:<c:if>判斷不到值
