使用procexp.exe查看线程
一般网络多线程服务器软件开发会涉及ACE和log4cxx。
使用ACE_Task可以很方便地进行多线程编程。
本文将简单演示一下,如何使用log4cxx可以日志的形式记录多线程的执行情况;以及如何使用procexp.exe查看当前进程中执行的线程。
以下是一段简单的代码:
#include "ace/OS.h"
#include "ace/Task.h"
#include <iostream>#include <log4cxx/logger.h>
#include <log4cxx/basicconfigurator.h>
#include <log4cxx/propertyconfigurator.h>
#include <log4cxx/xml/domconfigurator.h>
#include <log4cxx/helpers/exception.h>using namespace log4cxx;
using namespace log4cxx::xml;
using namespace log4cxx::helpers;class MyTask : public ACE_Task<ACE_NULL_SYNCH>
{
public:MyTask() {BasicConfigurator::configure();PropertyConfigurator::configure("log4j.properties");_rootLogger = Logger::getRootLogger();}int svc(){_rootLogger->debug("执行线程");for (int i = 0; i < 100; ++i){Sleep(1000);}return 0;}private:LoggerPtr _rootLogger;
};int ACE_TMAIN(int, ACE_TCHAR *[])
{MyTask task;task.activate(THR_NEW_LWP | THR_JOINABLE, 2);task.wait();task.close();return 0;
}
代码中,将分配2个线程,这两个线程都会执行svc()方法。
使用procexp.exe可以查看当前的进程中的线程情况,如下图所示:
可以看到进程4992,分配了三个线程:3452(主线程)、4144、5576(因为这两个线程大部分时间都是Sleep,所有看不到所占用的CPU情况)
日志文件hello.log中也记录相应的情况:(进程ID使用的十六进制)
DEBUG root [0x00001030] - 执行线程 ---> 4144线程
DEBUG root [0x000015c8] - 执行线程 ---> 5576线程
======================================
本文示例中使用的log4cxx,可以参考另一篇文章:
windows下log4cxx编译和使用记录
http://blog.csdn.net/vivianke/article/details/7833482
使用procexp.exe查看线程相关推荐
- 【Java多线程】Join的使用、如何使用getState()查看线程的状态
代码 t.join();表示:线程t插队 main被阻塞 需要等待t执行完毕后main再继续 package cn.hanquan.test;import java.text.SimpleDateFo ...
- jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令
转载自 jstack(查看线程).jmap(查看内存)和jstat(性能分析)命令 1.Jstack 1.1 jstack能得到运行java程序的java stack和native stack ...
- 查看线程CPU利用率
查看线程CPU利用率 方法1:利用ps命令查看对应的线程 1. ps -ef | grep 进程名称 2. ps -mp 进程ID -o THREAD,pid,tid,cmd,time,%cpu,%m ...
- Java 线程实例二(终止线程、生产者/消费者问题、获取线程状态、获取所有线程、查看线程优先级、中断线程)
终止线程 Java中原来在Thread中提供了stop()方法来终止线程,但这个方法是不安全的,所以一般不建议使用. 本文向大家介绍使用interrupt方法中断线程. 使用interrupt方法来终 ...
- Java 线程实例一(查看线程是否存活、获取当前线程名称、状态监测、线程优先级设置、死锁及解决方法、获取线程id、线程挂起)
查看线程是否存活 以下实例演示了如何通过继承 Thread 类并使用 isAlive() 方法来检测一个线程是否存活: public class TwoThreadAlive extends Thre ...
- java判断优先级代码,Java如何查看线程的优先级?
在Java编程中,如何查看线程的优先级? 以下示例演示如何使用Thread类的getPriority()方法检查线程的优先级. package com.yiibai; public class Thr ...
- 【Arthas】Arthas thread查看线程信息
1.概述 转载:Arthas thread查看线程信息 2.开篇 Arthas提供thread命令获取当前thread的信息,包括查询指定最忙的前N个线程并打印堆栈,找出当前阻塞其他线程的线程,显示所 ...
- win10 ,jkd8 查看线程状态
jvisualvm 打开JVisualVM(能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈,详细信息参见JVisualVM 简介) 可以点击右上角的 ...
- 使用jstack查看线程
目录 jstack -l pid 连接活动线程 jstack统计线程数 Java中线程的状态 统计线程数 统计 RUNNABLE 的线程数 统计 WAITING 的线程数 统计 TIMED_WAITI ...
- linux下查看mysql线程_linux-如何查看线程在哪个CPU内核中运行?
linux-如何查看线程在哪个CPU内核中运行? 在Linux中,假设线程的pid是[pid],则从目录/ proc / [pid]中我们可以获得许多有用的信息. 例如,这些proc文件/ proc ...
最新文章
- 安装部署及升级到Exchange Server 2010
- 【Python-ML】集成多数投票分类器-训练评估调优
- jenkins pipeline发送邮件报错解决办法: failed to connect, no password specified?
- JSP、Servlet、Tomcat、JDK、J2EE版本比较
- 使用CORS解决同源限制
- python编程第四版_清华编程教授强力推荐《Python编程》,指导你如何学习python
- 麒麟710f能否升级到鸿蒙系统,定了!麒麟710以上支持升级鸿蒙系统,荣耀也可以升级...
- Java基础篇:什么是异常,异常处理的基础是什么?
- android radiogroup 底部菜单,Android底部菜单栏(RadioGroup+Fragment)美化
- 磁盘文件系统Fat、Fat32、NTFS、exFAT的优缺点
- 基于RS485通讯总线的ModbusRtu协议C#上位机开发源码
- Mac安装jdk并配置环境变量
- 一个div里面包含两个div让两个div垂直居中
- 苹果笔记本怎么找文件夹_教你如何在苹果电脑上查看隐藏文件夹
- 不可不学的摄影技巧.1—构图
- 辛弃疾·青玉案·元夕
- 巨杉数据库SequoiaDB协调节点
- 修炼成高薪Java程序猿——从优秀的Java命名规范开始
- 【开源】港中文多媒体实验室开源目标跟踪工具箱MMTracking
- NB-IoT的DRX、eDRX、PSM三个模式是什么?