我正在编写简单的Java Tcp客户端应用程序。连接是在另一个线程中处理的,我很困惑,如何在主线程类中处理一些函数?我应该使用特殊的静态类吗?或者是否有任何"调度程序",它将在线程之间处理某些操作?
答案 0 :(得分:0)
/* in main object or thread */
synchronized (someObject) {
someObject.wait();
}
/* in tcp connection thread / object */
synchronized (someObject) {
someObject.notify();
}
答案 1 :(得分:0)
如果您正在使用Swing,则可以使用SwingUtilities.invokeLater(Runnable)
或SwingUtilities.invokeAndWait(Runnable)
在事件线程上执行Runnable
。
如果您正在运行其他一些框架,它可能有自己的API用于将事件注入UI线程。例如,如果你要创建一个vanilla AWT应用程序,你可以这样做:
java.awt.Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event);
其中event
封装了您希望在UI线程上发生的操作。但是,这可能会违反许可要求。