- 浏览: 2261921 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (423)
- FileNet相关 (3)
- 应用服务器相关 (22)
- Java综合 (77)
- 持久层 (24)
- struts (11)
- webservice (8)
- 虚拟机 (2)
- 光盘刻录 (0)
- AD及AD集群 (1)
- JS (33)
- F5 (0)
- loadrunner8.1 (0)
- Java 反编译工具 (2)
- DataBase (62)
- ant (1)
- 操作系统 (29)
- 我的任务 (3)
- 平台架构 (16)
- 业务规则引擎 (2)
- 模板 (1)
- EJB (5)
- spring (24)
- CMMI (1)
- 项目管理 (20)
- LDAP (13)
- JMS (10)
- JSP (19)
- JBPM (2)
- web MVC框架设计思想 (2)
- 第三方支付平台 (2)
- BUG管理工具 (1)
- 垃圾站 (2)
- php (1)
- swing (1)
- 书籍 (1)
- QQ qq (2)
- 移动互联网 (26)
- 爱听的歌曲 (0)
- hadoop (4)
- 数据库 (9)
- 设计模式 (1)
- 面试经验只谈 (1)
- 大数据 (9)
- sp (1)
- 缓存数据库 (8)
- storm (2)
- taobao (2)
- 分布式,高并发,大型互联网,负载均衡 (6)
- Apache Ignite (0)
- Docker & K8S (0)
最新评论
-
wangyudong:
新版本 Wisdom RESTClienthttps://gi ...
spring rest mvc使用RestTemplate调用 -
wangyudong:
很多API doc生成工具生成API文档需要引入第三方依赖,重 ...
spring rest mvc使用RestTemplate调用 -
zhaoshijie:
cfying 写道大侠,还是加载了两次,怎么解决啊?求。QQ: ...
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
xinglianxlxl:
对我有用,非常感谢
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
k_caesar:
多谢,学习了
利用maven的resources、filter和profile实现不同环境使用不同配置文件
关键字:线程跟踪者,可跟踪当前整个类调用关系图
实现类如下:
package com.ganji.as.web.filters.util;
import org.apache.commons.lang.StringUtils;
/**
* 说明:可跟踪整个调用关系图,直接在你认为出问题的地方调用,就能找到是那一层调用出了问题
* 线程栈跟踪者(又名错误定位者)
* @author zhaoshijie
*
*/
public class ThreadStackTracker {
/**
* 说明:可以用System.out替换成log方式
* 跟踪整个调用关系和过程
*/
public static void getAllCaller() {
System.out.println("ThreadStackTracker跟踪开始********************************************");
StackTraceElement stack[] = (new Throwable()).getStackTrace();
for (int i = 0; i < stack.length; i++)
{
StackTraceElement s = stack[i];
System.out.format(" ClassName:%d\t%s\n", i, s.getClassName());
System.out.format("MethodName:%d\t%s\n", i, s.getMethodName());
System.out.format(" FileName:%d\t%s\n", i, s.getFileName());
System.out.format("LineNumber:%d\t%s\n\n", i, s.getLineNumber());
}
}
/**
* 说明:可以用System.out替换成log方式
* 跟踪关键调用关系过程(根据指定的包名称跟踪)
*/
public static void getSimpleCaller(String trackPackageName) {
if(StringUtils.isBlank(trackPackageName)){
return ;
}
System.out.println("ThreadStackTracker跟踪开始********************************************");
StackTraceElement stack[] = (new Throwable()).getStackTrace();
for (int i = 0; i < stack.length; i++) {
if(i==0){//0的时候是该类本身,省略掉
continue;
}
StackTraceElement s = stack[i];
if(s.getClassName().contains(trackPackageName)){
System.out.format(" ClassName:%d\t%s\n", i, s.getClassName());
System.out.format("MethodName:%d\t%s\n", i, s.getMethodName());
System.out.format(" FileName:%d\t%s\n", i, s.getFileName());
System.out.format("LineNumber:%d\t%s\n\n", i, s.getLineNumber());
}
}
}
}
- ThreadStackTracker.rar (906 Bytes)
- 下载次数: 15
发表评论
-
各大巨头电商提供的IP库API接口-新浪、搜狐、阿里...
2015-04-22 13:18 15910关键字:各大巨头电商提供的IP库API接口-新浪、搜狐、阿里. ... -
用Java来获取访问者真实的IP地址-超准确
2015-04-22 12:55 6258关键字:用Java来获取访问者真实的IP地址-超准确 下面分享 ... -
Shiro集成OAuth2
2015-04-21 10:31 12445关键字:Shiro集成OAuth2 参考:http://jin ... -
淘宝网架构分享总结 - 架构,分布式,淘宝,虚拟化,水平伸缩
2015-04-19 00:25 7635推荐综合架构交流群:JAVA开发高级群 点击入群!!! 关键 ... -
Zookeeper 和 SASL
2015-04-16 09:29 13636关键字:Zookeeper 和 SASL 介绍 这是一个描述Z ... -
非对称加密(RSA)加密解密实现通信JAVA端工具类(教程)
2015-04-15 17:27 1184关键字:非对称加密(RSA)加密解密实现通信JAVA端工具类( ... -
对称加密(AES)加密实现工具类(教程)
2015-04-15 17:11 2146关键字:对称加密(AES)加密实现工具类(教程) Java加 ... -
Curator-Framework开源Zookeeper快速开发框架介绍
2015-04-14 18:41 703关键字:Curator-Framework开源Zookeepe ... -
IM消息推送之Openfire
2015-04-13 13:40 2213关键字:IM消息推送之Openfire Openfire 采用 ... -
Nio框架之Mina的demo
2015-04-12 13:38 644关键字:Nio框架之Mina的demo 官网:http://m ... -
AMQP中文版协议规范
2015-01-23 17:12 2989关键字:AMQP中文版协议规范 AMQP中文版协议规范:ht ... -
数据库连接池选型
2014-12-04 18:32 1171关键字:数据库连接池选型 proxool(与spring不太 ... -
spring中的数据源配置信息加密方案
2014-10-22 10:36 1076关键字:spring中的数据源配置信息加密方案 附件是完整的 ... -
OAuth2.0的Java实现 Apache Amber
2014-10-09 23:20 795关键字:OAuth2.0的Java实现 Apache Ambe ... -
企业信息管理系统基础框架jeesite
2014-05-06 22:21 2586jeesite项目地址(使用说明,):http://jeesi ... -
java中文分词组件-word分词
2014-05-06 21:33 21987关键字:java中文分词组 ... -
java制作可执行文件EXE文件
2014-05-05 18:58 1603关键字:java制作可执行文件EXE文件 参考:http: ... -
Quartz任务调度器详解
2014-04-25 22:46 19001关键字: 参考文章:ht ... -
各种hash算法-hashcodeUtil
2014-04-24 15:36 4245关键字:各种hash算法-hashcodeUtil -
性能监控工具类(StopWatchUtil)
2014-03-21 15:12 5747关键字:性能监控工具类(StopWatchUtil) 附 ...
相关推荐
在开发和调试多线程程序时,可以利用MFC提供的afxThreadState类来跟踪当前线程的状态,以及使用Visual Studio的调试工具监视各个线程的行为。此外,设置断点、查看线程调用堆栈以及分析线程同步状态也是常用的调试...
本文将详细解析"多线程压缩图片程序"这一主题,旨在帮助初学者理解如何利用多线程技术和图片处理算法来优化应用程序性能。 首先,我们要了解多线程的概念。多线程是指在一个应用程序中同时执行多个独立的线程,这些...
如果你需要考虑到这些情况,可能需要更复杂的逻辑,例如结合`Task`类或自定义的线程同步机制来跟踪任务状态。此外,线程池的复杂性意味着在某些情况下,即使所有工作者线程都可用,也可能存在未完成的任务。因此,...
它允许调用者在不等待函数执行完毕的情况下继续执行其他任务,实现所谓的"并发"执行。在C#中,我们可以使用委托(如`MethodInvoker`)和`BeginInvoke()`来实现异步调用。如上文所示,通过`BeginInvoke()`调用`Foo()`...
- **生产者-消费者模型**:线程间通过队列进行数据传递,一个线程生产数据,另一个线程消费数据。 - **读写锁**:用于保护共享资源,允许多个读取操作并行,但只允许一个写入操作。 通过深入理解这些概念,并结合...
我们可以通过Thread类的getState()方法获取线程当前的状态,以便了解线程的运行情况。 在Java中,可以使用`java.lang.management.ThreadMXBean`类提供的管理接口来获取更详细的线程信息,如线程ID、线程名、堆栈...
- **线程安全**:由于多个线程将访问同一个消费者实例,必须确保代码是线程安全的,尤其是在调用`consumer.poll()`方法时,该方法用于从Kafka拉取新消息。 - **线程协调**:使用多线程时,需要协调每个线程的消费...
易语言是一种专为初学者设计的编程语言,它采用了贴近自然语言的设计,使得编程更为简单易懂。在“易语言全局线程钩子源码”这个主题中,我们将深入探讨易语言如何实现全局线程钩子,以及相关的重要概念和技术。 ...
如果满,则调用`wait()`使当前线程等待,释放锁,让其他线程(可能是消费者)有机会执行。当有可用的空间时,`notify()`会被调用,这可能会唤醒一个等待的线程,但并不保证立即执行。 2. **消费者**: - `Consumer...
TThread类提供了Synchronize和Queue方法,前者用于在线程安全的环境下执行代码,后者则允许在主线程中异步执行代码。 4. **线程优先级**:线程的优先级可以调整,高优先级的线程会得到更多的CPU时间片,但过度使用...
本项目“一个简单的多线程应用程序”是专为初学者设计的,旨在通过VC(Visual C++)这一流行的Microsoft开发环境,帮助学习者理解和掌握多线程编程的基本概念和实践。 首先,我们要理解什么是多线程。在单线程程序...
`wait()` 方法使得当前线程等待,直到其他线程调用 `notifyAll()` 唤醒所有等待的线程。当商品达到最大库存或为空时,生产者和消费者将进入等待状态,直到条件改变。 3. `Producter` 类:实现了 `Runnable` 接口,...
SynchronizationContext是.NET Framework提供的一种上下文同步机制,它可以跟踪当前线程,确保回调方法在正确的线程上执行。在WinForms应用中,Application.Current.SynchronizationContext可用于获取UI线程的上...
在实际开发中,为了调试多线程程序,Visual Studio提供了丰富的调试工具,如线程视图、同步调用查看等,这些工具可以帮助我们跟踪线程执行情况,定位和解决线程问题。 总结一下,MFC中的多线程开发涉及线程创建、...
wait()和notify()是Object类的方法,用于线程间通信,当一个线程调用wait()后,它会释放持有的锁并进入等待状态,直到其他线程调用notify()唤醒它。Lock接口和ReentrantLock提供了更细粒度的锁控制,支持可中断的...
5. **性能分析**:使用工具如`strace`跟踪系统调用,`perf`进行性能分析,理解线程调度对系统性能的影响。 6. **多线程编程**:编写多线程程序,实现特定的功能,如生产者消费者模型、读者写者问题等经典并发问题的...
- **分析方法**:Thread Dump包含了当前所有线程的状态信息,包括线程ID、线程名称、线程状态以及堆栈跟踪。通过分析这些信息,可以诊断线程挂起、死锁等问题。例如,寻找长时间处于WAITING或BLOCKED状态的线程,...