一个带有GUI的java程序的主线程是如何运行的?比如当一个时间发生时,是否线程会停止当前的认为的执行,转入事件处理代码执行?是这样吗?还是没有线程的切换?同时,如果在一个GUI线程中有同步问题,open()函数中调用了obj.wait(),在事件处理函数中调用了obj.notifyAll()这个同步过程是如何进行的?
还有
open()
{
sychronized(obj);
obj.wait();
} public void controllerUpdate(ControllerEvent evt) {
synchronized (obj) {
stateTransitionOK = true;
obj.notifyAll();
}
}
在这种情况下synchronized是同一个线程中,作用是什么?仅仅是为obj对象的使用提供环境吗
还有
open()
{
sychronized(obj);
obj.wait();
} public void controllerUpdate(ControllerEvent evt) {
synchronized (obj) {
stateTransitionOK = true;
obj.notifyAll();
}
}
在这种情况下synchronized是同一个线程中,作用是什么?仅仅是为obj对象的使用提供环境吗
比如给按钮添加的监听器中执行的内容就在awt-event线程中。当处理一个事件耗时比较长时,就会产生图形界面假死(不能接着做下面的操作)。这时就应该另外起一个线程来处理,减少这个处理占用事件处理线程的时长。你后面写的确实看不明白
关于GUI的线程相关的知识,你‘能否推荐一点书籍,或者给我一点网络资源也行