第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

ThreadDump:如何查看等待條件/或任何其他條件?

ThreadDump:如何查看等待條件/或任何其他條件?

梵蒂岡之花 2023-07-19 17:08:12
我已經(jīng)對(duì)生產(chǎn)中部署的應(yīng)用程序進(jìn)行了線程轉(zhuǎn)儲(chǔ),該應(yīng)用程序使用 logback。我不是分析線程轉(zhuǎn)儲(chǔ)的專家,但是,我需要這樣做。我正在學(xué)習(xí),也看了一些網(wǎng)上的文章。下面是真實(shí)的線程轉(zhuǎn)儲(chǔ):"logback-8" #136 daemon prio=5 os_prio=0 tid=0x00007f3588001000 nid=0x13a waiting on condition [0x00007f35f8e7b000]   java.lang.Thread.State: WAITING (parking)        at sun.misc.Unsafe.park(Native Method)        - parking to wait for  <0x000000068d740338> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)        at java.lang.Thread.run(Thread.java:745)正如我所看到的,大多數(shù)線程都處于 WAITING 狀態(tài)。但我怎么知道他們到底在等什么?這些所有線程是否都試圖“等待”“某事”?我確實(shí)閱讀了一些在線材料,但是當(dāng)看到真正的線程轉(zhuǎn)儲(chǔ)時(shí),對(duì)于如何采取步驟來理解這些線程到底試圖做什么以及它們?cè)诘却裁矗@對(duì)我來說沒有任何意義,被封鎖等誰能幫我理解這一點(diǎn)嗎?
查看完整描述

3 回答

?
慕斯王

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊

據(jù)我分析線程轉(zhuǎn)儲(chǔ),當(dāng)您使用 Spring 等框架或其他庫(如您在此處使用的 Logback)時(shí)。他們根據(jù)您的配置創(chuàng)建線程池。例如,您可以在 applicationcontext.xml 或任何基于 java 的配置類中找到此類配置。因此,它的作用是,它將在應(yīng)用程序啟動(dòng)或第一次初始化調(diào)用時(shí)創(chuàng)建那么多線程。如果有任何任務(wù)到來,那么框架將從池中選擇一個(gè)線程并分配給它。任務(wù)完成后,線程將回到池中,此時(shí)線程狀態(tài)將是WAITING(正在停車)。這并不意味著它被任何線程阻塞。如果您的服務(wù)器有足夠的能力處理此類池,則不會(huì)導(dǎo)致任何性能問題。他們只是坐在理想的位置,因?yàn)樗麄儧]有任何任務(wù)要做。

查看完整回答
反對(duì) 回復(fù) 2023-07-19
?
三國紛爭(zhēng)

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊

根據(jù)上面的堆棧跟蹤,有以下推論

  • 有一個(gè)隊(duì)列Q。

  • N 個(gè)作業(yè)(可運(yùn)行)被添加到隊(duì)列中。

  • 這些作業(yè)將從隊(duì)列中取出并由 ThreadPoolExecutors 中的線程執(zhí)行(可以緩存/動(dòng)態(tài))。

假設(shè),我們有一個(gè)只有兩個(gè)線程(固定大?。┑木€程池執(zhí)行器,并且您只向隊(duì)列提交了一個(gè)作業(yè)。(作業(yè)1)

Thread1從隊(duì)列中取出job1并執(zhí)行。一旦執(zhí)行結(jié)束,就會(huì)進(jìn)入WAITING狀態(tài),因?yàn)殛?duì)列中沒有元素。它沒有工作要做。堆棧跟蹤上存在等待線程并不意味著它們是有害的。


查看完整回答
反對(duì) 回復(fù) 2023-07-19
?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊

您可能要做的第一件事是搜索 Runnable 線程及其已鎖定的同步器??蛇\(yùn)行線程如果長時(shí)間掛起,則很有可能正在執(zhí)行 IO 或 DB 操作。以 30 秒左右的間隔進(jìn)行后續(xù)線程轉(zhuǎn)儲(chǔ)并進(jìn)行比較研究。



查看完整回答
反對(duì) 回復(fù) 2023-07-19
  • 3 回答
  • 0 關(guān)注
  • 174 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)