问题标签 [threadpool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
8175 浏览

ruby - 线程池死锁

我找不到适合 Ruby 的 ThreadPool 实现,所以我写了我的(部分基于这里的代码:http://web.archive.org/web/20081204101031/http://snippets.dzone.com: 80/ posts/show/3276 ,但更改为等待/信号和其他实现 ThreadPool 关闭。但是在运行一段时间后(有 100 个线程并处理大约 1300 个任务),它在第 25 行因死锁而死 - 它等待新工作有任何想法,为什么会发生?

0 投票
15 回答
68998 浏览

c# - 何时在 C# 中使用线程池?

我一直在尝试学习 C# 中的多线程编程,但我对何时最好使用线程池与创建自己的线程感到困惑。一本书建议仅将线程池用于小任务(无论这意味着什么),但我似乎找不到任何真正的指导方针。

线程池与创建自己的线程相比有哪些优缺点?每个都有哪些示例用例?

0 投票
4 回答
1924 浏览

.net - 当 ThreadPool.QueueUserWorkItem 返回 false

MSDN 声明该方法返回

如果方法成功排队,则为 true;如果工作项未排队,则会引发 NotSupportedException。

出于测试目的,如何让方法返回false?或者它只是一个“次优”的类设计?

0 投票
2 回答
2956 浏览

.net - 使用异步委托或 ThreadPool.QueueUserWorkItem 进行大规模并行?

我有一个 .NET 应用程序,它在批量导入中处理大约 300,000 条记录,每条记录需要几秒钟,所以我想并行化它。ProcessWithAnsycDelegates()在下面的代码中,和有什么区别ProcessWithThreadPool()

0 投票
11 回答
78743 浏览

.net - 线程与线程池

使用新线程和使用线程池中的线程有什么区别?有哪些性能优势,为什么我应该考虑使用池中的线程而不是我明确创建的线程?我在这里专门考虑.NET,但一般示例很好。

0 投票
1 回答
2126 浏览

multithreading - 在 powershell 中使用 system.thread.threadpool

我在使用线程池的powershell中的一些代码示例之后。我在谷歌的朋友帮不了我。任何例子都会很棒。

唐纳德

0 投票
1 回答
744 浏览

c# - 线程池导致 GUI 冻结(?)

我注意到,如果我的 IO 密集型应用程序的 ThreadPool 最大线程数设置得太低 (16),那么我的 GUI 将冻结。但是如果我将它设置得更高(250),它就可以了。

谁能解释这种现象?

0 投票
1 回答
240 浏览

ruby-on-rails - backgroundrb thread_pool.defer 方法记录器输出到哪里去?

似乎由于线程问题 logger.warn (这就是我测试的)没有产生任何输出?我的代码与此类似:

任何想法?

0 投票
3 回答
4132 浏览

c# - .NET 中的通用线程池

对于我来说,这是一个相对常见的任务,而且我认为对于许多 .NET 程序员来说:
我想使用 .NET ThreadPool 来调度需要处理给定类型任务的工作线程。

作为复习,ThreadPool 的队列方法及其关联委托的签名是:

因此,典型的通用工作线程类看起来像:

注意state参数的类型?是Object

QueueUserWorkItem.NET 团队选择不使方法(或整个ThreadPool类)通用的令人信服的原因是什么?我不敢相信他们只是忽略了它。

这是我希望看到的方式:

这将使工人类类型安全(并且更清晰,恕我直言):

我肯定错过了什么。

0 投票
3 回答
1903 浏览

java - java fixedThreadPool 可以被多个线程使用吗

我有一个 Web 服务,它在返回结果之前会进行多次小计算。我想使用ExecutorService提供Executors.newFixedThreadPool()的方式来实现 Master - Worker 模式(即调用invokeAll并让线程等待所有结果完成)。理想情况下,所有 web 服务线程都使用相同的执行器服务,这样它们就不必都创建自己的线程池,它们可以共享一个用完系统所有处理时间的大池。

我对这种方法有疑问:

  • invokeAll从多个线程访问函数是否安全。
  • 执行程序服务是否会按顺序处理请求(即首先来自线程 1 的所有任务,然后是线程
  • 有没有办法说 10 个工作线程,并且可用的最大线程数取决于传入的请求数,所以假设我们有 1 个请求,它使用所有 10 个线程来处理该请求。如果您有 2 个请求,则每个请求将它们拆分为 5 个线程等。