Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从另一个线程更新GUI?_Java_Multithreading_Jsf - Fatal编程技术网

Java 如何从另一个线程更新GUI?

Java 如何从另一个线程更新GUI?,java,multithreading,jsf,Java,Multithreading,Jsf,我的JSF应用程序中的线程有问题,也许有人可以帮助我 启动后,我运行newthread,它正在进行一些后台操作。此线程在while(true)-循环中工作,但当它无法执行任何操作时,它会调用wait()。它在循环中工作,因为我必须在一些用户操作之后调用notify() 现在我想完成的是:我希望线程通知主线程作业的一部分已经完成,这样我就可以更新UI中的一些元素。有什么想法吗 我也想显示FacesMessage,但从另一个线程(即使使用观察者模式)也不可能这样做。也许您可以使用ICEfaces服务

我的JSF应用程序中的线程有问题,也许有人可以帮助我

启动后,我运行newthread,它正在进行一些后台操作。此线程在
while(true)
-循环中工作,但当它无法执行任何操作时,它会调用
wait()
。它在循环中工作,因为我必须在一些用户操作之后调用
notify()

现在我想完成的是:我希望线程通知主线程作业的一部分已经完成,这样我就可以更新UI中的一些元素。有什么想法吗


我也想显示FacesMessage,但从另一个线程(即使使用观察者模式)也不可能这样做。

也许您可以使用ICEfaces服务器端推送的异步后台工作来解决您的问题。
请看一个推送技术的例子


您的后台工作线程可以执行“推送”,这将“通知”某些页面进行更新(部分更新)并显示您的消息。

也许您可以使用ICEfaces服务器端推送异步后台工作来解决您的问题。
请看一个推送技术的例子


您的后台工作线程可以执行“推送”,它将“通知”某些页面进行更新(部分更新)并显示您的消息。

您可以使用JMS在运行的线程和托管bean之间进行通信,但对于其他线程,您需要使用上述推送技术之一


如果足够的话,您可以使用primefaces轮询组件,否则我现在知道的唯一一种与jsf一起工作的推送技术就是icefaces推送。Primefaces推出了一个新的基于websocket的推送组件,看起来它会非常好,但我不相信它会在几个月内完成(它出现在最新的快照中,但实际上还没有做很多,只适用于jetty8)。您也可以使用comet/atmosphere库来完成自己的工作,但我自己也看到了这一点,我可以告诉您,这些解决方案在您这方面需要做很多工作,基本上是一个自定义实现。

您可以使用JMS在运行的线程和托管bean之间进行通信,但对于其余部分,您需要使用上面提到的推送技术之一


如果足够的话,您可以使用primefaces轮询组件,否则我现在知道的唯一一种与jsf一起工作的推送技术就是icefaces推送。Primefaces推出了一个新的基于websocket的推送组件,看起来它会非常好,但我不相信它会在几个月内完成(它出现在最新的快照中,但实际上还没有做很多,只适用于jetty8)。您也可以使用comet/atmosphere库做自己的事情,但我自己看了之后可以告诉您,这些解决方案需要您做大量的工作,基本上是一个定制的实现。

还记得观察者模式吗?:-)使用事件源:这是一种非常好的OO机制。您使用的是JSF1.x还是2.x?您是否使用IceFaces/RichFaces/PrimeFaces这样的ajaxical组件库?我使用的是2版。还记得观察者模式吗?:-)使用事件源:这是一种非常好的OO机制。您使用的是JSF1.x还是2.x?您是否使用IceFaces/RichFaces/PrimeFaces这样的ajaxical组件库?我使用的是2版。还有你的脸。