草庐IT

event-dispatch-thread

全部标签

Java,设计模式 : Multiple event sources and One event Handler

我想在具有多个事件源(线程)的Java中实现一个设计。这样的事件源完成一个特定的任务,必须通知唯一的事件处理程序(类),这个事件处理程序必须根据事件源通知完成其他任务。我的问题是:如何在Java中以适当的方式实现这个设计?有类似这种设计的设计模式吗?提前谢谢你:)。 最佳答案 我认为您正在寻找Observer图案。Java确实有一些标准接口(interface)(java.util.Observer、java.util.Observable),尽管这些接口(interface)不是特定于类型的;因此,如果域似乎需要它,您可能会考虑自

java - Eclipse 和 Java : Is there an event monitoring feature?

在eclipse中开发javaguis(例如swing)时,是否有一个内置功能(或插件)可以监控所有触发的事件? 最佳答案 您也可以自己编写一个AWTEventListener。只需将以下几行添加到您的程序中即可。Toolkit.getDefaultToolkit().addAWTEventListener(newAWTEventListener(){publicvoideventDispatched(AWTEventevent){System.out.println(event);}},-1);用你喜欢的任何东西替换输出。您还可以

java - java.lang.Thread 本身是线程安全的类吗?

我想知道我们是否需要外部同步才能使用java.lang.Thread中的方法?例如,我们可以调用方法t1.isAlive()吗?从任何线程没有外部同步并期望它返回:trueift1hasalreadybeenstarted,falseotherwise.或者调用java.lang.Thread中的方法需要外部同步吗??publicstaticvoidmain(Stringargs[]){finaljava.lang.Threadt1=newjava.lang.Thread(newjava.lang.Runnable(){@Overridepublicvoidrun(){while(tr

java - 忽略事件分派(dispatch)线程如何让这个程序工作?

当我试图看看我是否能回答thisquestionearliertoday.我意识到我不完全理解EventDispatchThread(美国东部时间)。Googling双方都确认并帮助了这一点并澄清了whyIdon't.(This也可能与理解有关。)该代码设置了一个GUI,随后(如前面的问题)更新了一个文本字段,直到取消设置标志。我有几个问题/请求。如果两个调用(对swingInit和doIt)都在invokeLater之外,请解释为什么下面的代码运行正常block(如图所示),因为这两个调用都会影响或查询GUI,但都不会在EDT上执行(是吗?)。那不是招来失败吗?如果调用swingIn

java - Thread.holdsLock() 和锁粗化

假设我有2个相邻的synchronizedblock,它们之间有一个Thread.holdsLock()调用:finalObjectlock=newObject();//...synchronized(lock){//dostuff}if(Thread.holdsLock(lock)){thrownewIllegalStateException();}synchronized(lock){//domorestuff}现在,如果JVM在某个时候决定coarsen会怎样?锁定并合并上面的synchronizedblock?Thread.holdsLock()调用是否仍会返回false,或者

java - "Thread.currentThread().getName"和 "this.getName"有什么区别?

这是代码:importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;importjava.util.concurrent.ThreadFactory;classUnCatchExceptionThreadextendsThread{publicUnCatchExceptionThread(Stringname){this.setName(name);}@Overridepublicvoidrun(){System.out.println("Threadnameis:"+this.get

java - 如何理解Java Thread中的wait和notify方法?

我对这两个描述感到很困惑:“等待方法阻塞调用线程并放弃监视器锁”“notify方法解除了一个等待线程的阻塞,但没有放弃监视器锁”这是我的问题:我知道Java中的每个对象都有一个锁,但是“监控锁”是什么意思呢?它和对象的锁一样吗?为什么notify方法需要放弃监听锁?如果我尝试使用以下代码让对象等待:classsimpleTaskextendsThread{intwaitingTime;publicsimpleTask(intwaitingTime){this.waitingTime=waitingTime;}publicvoidrun(){synchronized(this)//thi

java - 理解 Thread.currentThread().getContextClassLoader().getResourceAsStream()

我正在查看代码示例,但不确定这意味着什么。Thread.currentThread().getContextClassLoader().getResourceAsStream("MyProperty.properties");它似乎想要读取属性文件,但我不确定MyProperty.properties的位置。感谢您的帮助,谢谢。 最佳答案 ItappearsthatitlookingtoreadapropertyfilebutIamnotsurewhereMyProperty.propertiesislocated.正如您当前拥有的

java - 在 Callable 中处理 Thread.interrupted() 的正确方法?

在Callable中处理Thread.interrupted()的正确方法是什么?我猜可调用对象应该抛出一个InterruptedException;例如:publicclassMyCallableimplementsCallable{publicObjectcall(){Objectresult=null;//Simulatelong-runningoperationthatcalculatesresultwhile(true){...if(Thread.interrupted()){thrownewInterruptedException();}}result=...//somet

java - Java : what's the point? 中的 Thread.interrupt()

这个问题在这里已经有了答案:JavalongrunningtaskThreadinterruptvscancelflag(5个答案)关闭9年前。我完全理解它的作用(至少我希望如此)。它并没有真正中断线程。它使Thread.isInterrupted()为真,代码应该检查是什么方法并停止线程本身。我的问题是,为什么我们甚至需要这种方法?它似乎完全可以通过声明一个boolean标志来说明是否应该停止这个线程来替换?没有任何Java教科书使用这个boolean标志作为应如何使用volatile关键字的最佳示例吗?我特别困惑,因为似乎没有办法“不中断”线程,因为Thread.resume()已