覆盖AWT事件调度线程

314314314

我建立在Java分析工具的基础上,该机制要求应用程序的所有线程实例都由子类“ ProfilingThread”替换,该子类覆盖某些线程的行为以实现分析功能。

给定Java应用程序的源代码,我可以简单地将所有“ Thread”类重构为“ ProfilingThread”类。但是,AWT事件调度程序的线程不是由用户的代码实例化的,而是在调用AWT函数时自动创建的。

如何用ProfilingThread实例替换AWT事件调度程序的Thread实例?

欢迎所有想法和批评。

克里斯·洗衣机

首先要提出一点批评:在生产级应用程序中入侵Java内部通常不是一个好主意。

更好的解决方案是为事件分派线程的任何实例添加专门的处理,并且仅分析您自己的类。java的其他部分也很有可能会启动也不会从ProfilingThread扩展过来的其他线程...

但是,如果您必须更改AWT事件分配线程:

事件调度线程是java.awt.EventDispatchThread系统事件队列中的一个实例,可以通过以下方式获取

Toolkit.getDefaultToolkit().getSystemEventQueue()

要替换线程,您必须重新java.awt.EventDispatchThread使用ProfilingThread或更好地扩展EventDispatchThread并添加分析功能。

然后,您必须使用反射设置字段,因为它是私有的,通常不能从外部进行更改。(有很多有关如何执行此操作的示例)

作为参考:http : //developer.classpath.org/doc/java/awt/EventQueue-source.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

java awt事件队列/调度线程未知源错误?

来自分类Dev

事件调度线程同步

来自分类Dev

将逻辑线程与事件调度线程分开

来自分类Dev

Java AWT-repaint()方法线程调度

来自分类Dev

Swing并发和事件调度线程

来自分类Dev

JRuby和Swing事件调度线程

来自分类Dev

scala,swing:事件调度线程(actor)发生线程问题

来自分类Dev

JavaFX事件调度线程与JavaFX应用程序线程?

来自分类Dev

如何返回等待调度程序线程中的事件的等待(任务?)

来自分类Dev

如何实现将结果返回给事件调度线程的方法?

来自分类Dev

由于隐式线程,C#无法调度事件

来自分类Dev

CUDA线程调度:自定义线程交换/基于事件的锁?

来自分类Dev

为什么应该仅在事件调度线程上访问Swing组件?

来自分类Dev

将事件调度线程置于保持状态,直到Swing计时器停止

来自分类Dev

实现实时的1毫秒准确事件,而无需进行线程调度

来自分类Dev

将事件调度线程置于保持状态,直到Swing计时器停止

来自分类Dev

线程和任务调度

来自分类Dev

了解线程调度模式

来自分类Dev

JScrollPane不调度事件

来自分类Dev

调度事件发生多次

来自分类Dev

调度事件与数据

来自分类Dev

chrome事件未调度

来自分类Dev

协调视图/调度事件

来自分类Dev

事件的调度算法

来自分类Dev

调度程序会调度内核线程吗?

来自分类Dev

Corda事件调度中的可调度状态

来自分类Dev

什么是AWT-Windows线程?

来自分类Dev

从JFrame打开另一个JFrame实例:使用EventQueue.invokeLater吗?(事件调度线程)

来自分类Dev

JVM线程管理与OS调度