1. 程式人生 > >同一程序內多個執行緒狀態的檢視

同一程序內多個執行緒狀態的檢視

今天發現伺服器上程式執行異常,整個程式是在執行,但從日誌看只有部分執行緒在執行,而另一部分執行緒沒執行。然後我就在程式碼中加入了一些更詳細的日誌,然而問題發生時,程式還是那種異常。於是就上網搜了一些檢視執行緒狀態的資料,這裡總結下。

  1. top -H -p pid

    # top -H -p 17972

    這個命令可以檢視同一程序下各個執行緒的執行狀態,如下圖
    top -H -p資訊

  2. pstack pid

    # pstack 17972
    這個命令可以看到同一程序下各個執行緒的堆疊資訊,如下圖
    pstack資訊

相關推薦

同一程序執行狀態檢視

今天發現伺服器上程式執行異常,整個程式是在執行,但從日誌看只有部分執行緒在執行,而另一部分執行緒沒執行。然後我就在程式碼中加入了一些更詳細的日誌,然而問題發生時,程式還是那種異常。於是就上網搜了一些檢視

[c/c++] 一個程序執行,用什麼方法讓主執行不退出更好,佔用資源最少,效率最高?

[c/c++] 一個程序有多個執行緒,用什麼方法讓主執行緒不退出更好,要求佔用資源最少,效率最高? 我所知道的不讓主執行緒退出的方法有: 一,死迴圈:while(1);/ for(;;); 二,pause(); 讓主執行緒暫停等待訊號使其退出 三,另一種死迴圈whil

python中執行開啟的兩種方式(含有event的應用,即安全的機制,類似於java的等待喚醒機制,不會出現執行之間的錯亂問題)

 event是類似於java中的等待喚醒機制,具體方法參照上一篇CSDN 下面來介紹開啟執行緒的第一種方式 #Filename:threading1.py #開啟執行緒的第一種方式 import threading import time event=threadin

使用BlockingQueue,執行同時處理同一型別的資源

如果是單執行緒處理一批事情,例如,有16個日誌需要處理,各個日誌之間是獨立的,假設處理每個的時間是1秒, 一共需要處理16秒才能處理完。 現在使用多執行緒來加速處理時間,思路: 建立4個執行緒,每個執行緒從一個任務列表中獲取一個任務,進行處理,處理完後,再獲取一個,直到任務

java併發程式設計之使用 CountDownLatch 控制執行執行順序

有時候會有這樣的需求,多個執行緒同時工作,然後其中幾個可以隨意併發執行,但有一個執行緒需要等其他執行緒工作結束後,才能開始。舉個例子,開啟多個執行緒分塊下載一個大檔案,每個執行緒只下載固定的一截,最後由另外一個執行緒來拼接所有的分段,那麼這時候我們可以考慮使用CountDownLatch來控制併發。

Java執行-併發之如何制定執行執行順序?

文章目錄 如何讓10個執行緒按照順序列印0123456789? 程式碼如下: 1.建立一個鎖物件類 2.建立一個執行緒類 3.測試類 如何讓10個執行緒按照順序列印012

c/c++ 執行 執行等待同一個執行的一次性事件

多執行緒 多個執行緒等待一個執行緒的一次性事件 背景:從多個執行緒訪問同一個std::future,也就是多個執行緒都在等待同一個執行緒的結果,這時怎麼處理。 辦法:由於std::future只能被呼叫一次get方法,也就是隻能被某一個執行緒等待(同步)一次,不支援被多個執行緒等待。所以std::shar

java實現執行達到一個闕伐值後一起執行

給大家推薦個靠譜的公眾號程式設計師探索之路,大家一起加油 1. CountDownLatch 1.1 簡介 CountDownLatch是一個同步輔助類,通過它可以完成類似於阻塞當前執行緒的功能,即:一個執行緒或多個執行緒一直等待,直到其他執行緒執行的操作完成。CountDownLatch用

java併發程式設計(二)執行

多個執行緒多個鎖 多個執行緒多個鎖:多個執行緒,每個執行緒都可以拿到自己制定的鎖,分別獲得鎖之後,執行synchronized方法體的內容。就是在上次那個部落格上說道的鎖競爭的問題,是因為所有的執行緒過來以後都爭搶同一個鎖。如果說每個執行緒都可以或得到自己的鎖,這樣的話我們的鎖競爭問題就沒有了

每天一例執行[day2]-----synchronized與執行

package com.jeff.base.sync002; /** * 多個執行緒多個鎖 * * 關鍵字synchronized取得的鎖都是物件鎖,而不是把一段程式碼(方法)當做鎖, * 所以程式碼中哪個執行緒先執行syn

執行訪問synchronized和非synchronized程式碼塊

class Counter implements Runnable{ private int count; public Counter() { count = 0; } public void countAdd() { synchronized(this) {

執行如何操作同一個epoll fd

自己以前做一個介面伺服器時候,這種場景下我的設計是多個執行緒操作同一個epoll fd。彼時,我的理由是epoll的系列函式是執行緒安全的。        當然有人不理解為什麼會有多個執行緒操作同一個epoll fd的情形,這裡稍微鋪陳一下介面伺服器的場景。epoll fd

如何讓執行按照順序執行

兩種方法: 假設如下:                 如果有a,b,c三個執行緒,我們依次執行這三個執行緒。因為不保證有序性,可能執行出來是混亂的 解決如下: 第一種使用join()方法,這個方法的作用是,讓當前執行執行緒等待直到呼叫join方法的執行緒結束執行

redis執行操作單個key場景的併發問題

redis多個執行緒操作單個key場景的併發問題 2016年10月18日 10:00:18 琅琊山二當家 閱讀數:13262 版權宣告:微信公眾號 java架構獅 歡迎轉載 請註明出處 https://blog.csdn.net/AlbertFly/article/details/52846

python 建立執行並啟動

建立多個執行緒並啟動這些執行緒          th_num : 15 th_num = conf["crawl_threads"] self._thread_list = [] self.

C# 連線mysql,連線後顯示執行

資料庫連線字串 return string.Concat(new string[]             {      &n

互斥鎖——執行同時搶一把鎖出現的問題與處理方式

1、執行緒鎖的介紹 1.1 建立互斥鎖:        (1) 靜態互斥鎖初始化:pthread_mutex_t mutex_x= PTHREAD_MUTEX_INITIALIZER;                     此句建立鎖後,可以直接使用 pthread_

建立執行、資料共享問題分析

Join 多個執行緒執行順序是亂的,跟作業系統內部對執行緒的排程機制有關。 主執行緒等待子執行緒執行完畢後才執行 void myprint(int item) { cout << "執行緒編號" << item << endl; } int main

執行程式設計(二)——面試題,每個執行只打印一種字元,執行協同順序列印n次字串(求大神的其他實現方案)

(這個是歡聚時刻(YY)的筆試題,在筆試的時候沒有寫出來,後來自己寫了出來,希望大神能給出更優秀的解決方案……ps:現在面試官總有面試時問筆試程式設計題思路的習慣,呵呵) 題目簡述: 輸入一個字串以

執行之間共享資料的方式

ps:由於最近的面試很多問題都涉及多執行緒,自己感覺以前學的還是太淺,再展開學學吧。 今天先從考的比較頻繁的“多執行緒共享資料”開始。 一.目標 談到多執行緒共享資料,理想情況下我們希望做到“同步”和“互斥”。這是目標我們暫且把它先放到這。 二.分類 多執行緒共