首页 \ 问答 \ ExecutorService和SwingWorker(ExecutorService and SwingWorker)

ExecutorService和SwingWorker(ExecutorService and SwingWorker)

我已经看了一遍这个答案,但似乎无法找到它,所以如果这是一个愚蠢的问题,请道歉。 请温柔。

我正在编写一个简单的MVC框架,我对SwingWorker以及它如何与ExecutorService工作时感到困惑。

我想通过使用Executors.newFixedThreadPool(n)限制ExecutorService允许我的线程数。

我理解使用SwingWorker的重要性,因为它具有执行冗长任务( doInBackground ...等)的方法,并允许通过事件调度线程更改GUI。

但是,创建Executors.newFixedThreadPool(n)会将线程数限制为nSwingWorker似乎限制为由某种私有内部常量MAX_WORKER_THREADS设置的10个线程。

我想知道的是我咆哮错误的树试图结合这两个类来限制线程的数量,因为暗示似乎是如果我向Executor提交SwingWorker任务,那么一个任务会产生多达十个线程?

我最终的目标是编写一个程序,这将有一些密集的计算,我不想从一开始就犯这样一个根本的错误,因为这可能被证明是一个资源消耗问题,也就是说,我会有一个可爱的响应通过正确使用EDT进行GUI,但如果每个任务最多生成10个自己的线程,它将变得无法响应!


I have looked all over for this answer, but can not seem to find it, so apologies if this is a dumb question. Please be gentle.

I am writing a simple MVC framework, and am getting confused on SwingWorker and how it works with ExecutorService.

I want to limit the number of threads which ExecutorService permits me to by using Executors.newFixedThreadPool(n).

I understand the importance of using SwingWorker as it has methods for performing a lengthy task (doInBackground...etc) and allows changes to the GUI via the Event Dispatch Thread.

However, creating Executors.newFixedThreadPool(n) limits the number of threads to n whereas SwingWorker seems to have a limit of 10 threads set by some kind of private internal constant MAX_WORKER_THREADS.

What I want to know am I barking up the wrong tree trying to combine these two classes to limit the number of threads, as the implication seems to be if I submit a SwingWorker task to an Executor, will that one task spawn up to ten threads?

My eventual aim is to write a program which will have some intensive computations, and I do not want to make such a fundamental error from the outset, as this could prove to be a resourcing consumption problem, that is, I will have a lovely responsive GUI by proper use of the EDT, but then it will become unresponsive if each task is spawning up to 10 threads of its own!


原文:https://stackoverflow.com/questions/22133484
更新时间:2023-06-12 21:06

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。