问题描述
我真的很喜欢javax.swing.SwingWorker,这是处理多线程的一种简单方法。
现在我有一个不带任何GUI的服务器应用程序,并且想要使用诸如SwingWorker之类的东西,以及process(),done(),cancel()等方法。
我知道我可以只使用SwingWorker,并且可能没有问题,但是显然SwingWorker仍然打算与Swing应用程序一起使用。
那么有像SwingWorker这样的东西打算在更一般的情况下使用,但是几乎一样吗?
或者,如果不是,使用SwingWorker而不使用swing的缺点是什么? 我想到的是不良的代码样式,并且EDT中执行了done()和process()方法。
坦克
解决方法
大多数服务器框架都希望您不会尝试自己管理线程。这通常是由于它们的实现方式(资源作为事务,安全主体,记录器...)可能是线程本地的。大多数API完全不是线程安全的,例如JDBC连接不是。
例如J2EE restrictions指示您不应创建或管理线程。