監控某個程序的執行緒狀態
問題: 我的程式在其內部建立並執行了多個執行緒,我怎樣才能在該程式建立執行緒後監控其中單個執行緒?我想要看到帶有它們名稱的單個執行緒詳細情況(如,CPU/記憶體使用率)。
執行緒是現代作業系統上進行並行執行的一個流行的程式設計方面的抽象概念。當一個程式內有多個執行緒被叉分出用以執行多個流時,這些執行緒就會在它們之間共享 特定的資源(如,記憶體地址空間、開啟的檔案),以使叉分開銷最小化,並避免大量高成本的IPC(程序間通訊)通道。這些功能讓執行緒在併發執行時成為一個高 效的機制。
在Linux中,程式中建立的執行緒(也稱為輕量級程序,LWP)會具有和程式的PID相同的“執行緒組ID”。然後,各個執行緒會獲得其自身的執行緒 ID(TID)。對於Linux核心排程器而言,執行緒不過是恰好共享特定資源的標準的程序而已。經典的命令列工具,如ps或top,都可以用來顯示執行緒級 別的資訊,只是預設情況下它們顯示程序級別的資訊。
這裡提供了在Linux上顯示某個程序的執行緒的幾種方式。
方法一:PS
在ps命令中,“-T”選項可以開啟執行緒檢視。下面的命令列出了由程序號為<pid>的程序建立的所有執行緒。
1.$ ps -T -p <pid>
相關推薦
監控某個程序的執行緒狀態
問題: 我的程式在其內部建立並執行了多個執行緒,我怎樣才能在該程式建立執行緒後監控其中單個執行緒?我想要看到帶有它們名稱的單個執行緒詳細情況(如,CPU/記憶體使用率)。 執行緒是現代作業系統上進行並行執行的一個流行的程式設計方面的抽象概念。當一個程式內有多個執行緒被叉分出用以執行多個流時,這些執行緒就
linux下程序和執行緒狀態檢視
檢查 使用 ps -fe |grep programname 檢視獲得程序的pid,再使用 ps -Lf pid 檢視對應程序下的執行緒數. 查詢資料發現可以通過設定 ulimit -s 來增加每程序執行緒數。 每程序可用執行緒數 = VIRT上限/stack size
通過turnoff漫畫形象理解連線池,孤兒程序,殭屍程序,執行緒狀態
1.連線池 漫畫說明,連線池裡面有好多的連線,使用者通過這些連線完成查詢。好處:通過連線的重複使用,避免了每次查詢都要建立連線,節省開銷。 (這個漫畫好形象啊,之前都不怎麼懂,對連線池的認識很模糊!!!!!) 其實最重要的是這個思想: 對某個常用的東西做池化處理,能
監控 Java 執行緒池及檢測執行緒池執行緒狀態
轉自:https://www.jianshu.com/p/2c4c49e3a758 之前寫過一篇 Java 執行緒池的使用介紹文章《執行緒池全面解析》,全面介紹了什麼是執行緒池、執行緒池核心類、執行緒池工作流程、執行緒池分類、拒絕策略、及如何提交與關閉執行緒池等。 但在實際開發過程中,線上程
同一程序內多個執行緒狀態的檢視
今天發現伺服器上程式執行異常,整個程式是在執行,但從日誌看只有部分執行緒在執行,而另一部分執行緒沒執行。然後我就在程式碼中加入了一些更詳細的日誌,然而問題發生時,程式還是那種異常。於是就上網搜了一些檢視
linux監控某個程序的執行shell指令碼
該指令碼實現了對指定程序名的程序進行每隔2的掃描監控,一旦發現程序不存在便重新啟動。 #!/bin/sh a=10; while [[ @a -gt 5 ]]; do if test $(pgrep -f $1|wc -l) -eq 2;then
程序/執行緒同步的方式和機制,程序間通訊【轉】
(轉自:https://www.cnblogs.com/virusolf/p/5331946.html) 一、程序/執行緒間同步機制。 臨界區、互斥區、事件、訊號量四種方式臨界區(Critical Section)、互斥量(Mutex)、訊號量(Semaphore)、事件(Event)的區別
程序執行緒間的同步機制
因為是轉載文章, 在此標明出處,如有冒犯請聯絡本人。 因為好的文章,以前只想收藏,但連線有時候會失效,所以現在碰到好的直接轉到自己這裡。 原文出處:http://www.cnblogs.com/memewry/archive/2012/08/22/2651696.html
Python程序,執行緒以及協程對比
執行緒:一份程式碼資源有多個箭頭同時執行 程序:拷貝多份程式碼資源中只存在一個箭頭(執行緒)來執行 協程 : 利用程式的阻塞或者暫停時間完成多工 即:資源分配的程式碼是程序,而執行程式碼的是執行緒, 可以理解為程序是工廠的一條流水線,其中執行緒就是流水線上的工人。 協程利用閒散時間加班的有志
java 執行緒之執行緒狀態
java執行緒狀態 1. 初始(NEW):新建立了一個執行緒物件,但還沒有呼叫start()方法。 2. 執行(RUNNABLE): Java執行緒中將就緒(ready)和執行中(running)兩種狀態籠統的稱為“執行”。 執行緒物件建立後,其他執行緒(比如main執行緒)呼叫了該物件
Java分析系列之四:jstack生成的Thread Dump日誌執行緒狀態
前面文章中只分析了Thread Dump日誌檔案的結構,今天針對日誌檔案中 Java EE middleware, third party & custom application Threads 部分執行緒的狀態進行詳細的分析。 目錄 [隱藏] 1 Thread Dump日誌
伺服器故障排查 如何使用jstack分析執行緒狀態
使用jstack精確找到異常程式碼的:https://blog.csdn.net/Mr__fang/article/details/68496248?utm_source=blogxgwz0 Java記憶體洩漏分析系列之一:使用jstack定位執行緒堆疊資訊:https://www.javatang.com
併發程式設計基礎——執行緒狀態,啟動及停止的幾種方式
前言 遙想當年大二,實習面試的時候,面試官一個問題:作業系統最小的排程單元是什麼?當時還沒學過作業系統,只知道程序的概念,於是乎信心滿滿的答道,當然是程序啊,然後......就沒有然後了。 之後再看這個問題,其實就是一個笑話。作業系統排程的最小單元其實是執行緒。現在想想當時,自己大二就敢
【Java多執行緒】執行緒狀態、執行緒池狀態
執行緒狀態: 執行緒共包括以下5種狀態。1. 新建狀態(New) 執行緒物件被建立後,就進入了新建狀態。例如,Thread thread = new Thread()。2. 就緒狀態(Runnable) 也被稱為“可執行狀態”。執行緒物件被建立後,
程序執行緒協程區別
現在多程序多執行緒已經是老生常談了,協程也在最近幾年流行起來。python中有協程庫gevent,py web框架tornado中也用了gevent封裝好的協程。本文主要介紹程序、執行緒和協程三者之間的區別。 一、概念 1、程序 程序是具有一定獨立功能的程式關於某個資料集合上的一次執
檢視某個程序執行時間的幾種方法
1.首先查出某個程序的pid,然後使用ps命令 [[email protected] ~]# jps 2640 Jps 2339 DataNode 2239 NameNode [[email protected] ~]# ps -p 2239 -o etime ELAPSE
程序執行緒模型
文章目錄 程序的定義 程序控制塊PCB 程序狀態及狀態轉換 程序的三種基本狀態 三狀態模型及狀態轉換 程序的其它狀態 程序的五狀態模型 程序佇列 程序控制
jstack執行緒狀態分析
jstack Dump 日誌檔案中的執行緒狀態 dump 檔案裡,值得關注的執行緒狀態有: 死鎖,Deadlock(重點關注) 執行中,Runnable 等待資源,Waiting on condition(重點關注)
java執行緒狀態詳解
執行緒狀態 執行緒狀態總共可分為五大狀態: 新建 可執行 執行 等待阻塞睡眠 死亡,如下圖所述: 1.新建(NEW): 執行緒物件已經建立,但還沒呼叫start()方法。 2.可執行(RUNNABLE): 當執行緒有資格執行,但還沒有獲得cpu資源。當start()方法呼叫後,執行緒先
執行緒狀態及其轉換
執行緒的基本狀態 1. 新建狀態(New) : 執行緒物件被建立後,就進入了新建狀態。例如,Thread thread = new Thread()。 2. 就緒狀態(Runnable):執行緒物件被建立