我相信任何一个在GUI应用程序中处理数据库请求的程序员都会遇到以下一个或多个问题:
- 因为你从事件分派线程中调用数据库层,所以你的GUI会冻结
- 当你有多个窗口/面板/JFrame,用户可以启动db请求时,性能会降低,因为你无法控制用户创建的线程
- 用户可能会锁定应用程序,甚至是数据库,因为他在第一个操作完成之前多次调用任何操作
我想知道的是:是否有任何框架来处理一个有序长时间运行的操作集合的要求(包括但不限于数据库调用,即计算)在事件分派线程之外?
注意:我知道SwingWorker;-)
我相信任何一个在GUI应用程序中处理数据库请求的程序员都会遇到以下一个或多个问题:
我想知道的是:是否有任何框架来处理一个有序长时间运行的操作集合的要求(包括但不限于数据库调用,即计算)在事件分派线程之外?
注意:我知道SwingWorker;-)
我怀疑你不会找到针对数据库请求的特定内容。你可以尝试重用现有的通用任务调度库。一个例子是Eclipse jobs API。这不依赖于IDE。
请参见http://www.eclipse.org/articles/Article-Concurrency/jobs-api.html
这样的东西例如在Netbeans中可以找到。请看RequestProcessor。但是在简单的情况下,这是不必要的。上次我需要类似线程调度和控制的东西时,我直接使用了包含在J5(我使用J6)中的新并发包。通过它的ExecutorFactory-ies,你可以简单地实现对任务的基本控制。你也可以使用一些队列。这个PDF可能有所帮助。这个PDF是用斯洛伐克语写的,但是单/多任务工作者是用Java编写的 ;)