9得票2回答
Java - 如何在等待数据的进程上实现线程

我对多线程编程比较新,并希望能够了解实现以下想法的最佳方法。 目前,我的代码的工作方式如下图所示: 它是单线程的,因此在处理每个数据并将其写入数据库的时间内,会有新数据进来排队等待,这会使事情变得过于缓慢。我在一个4CPU服务器上运行,但当前设置仅使用1个CPU。 我想要将中间部分的工...

18得票5回答
如何访问ThreadPoolExecutor的返回值?

假设我有以下代码:def func(a,b): return (func2(a),func3(3)) def paralel_func(alist,blist) with ThreadPoolExecutor(max_workers=None) as executor: ...

10得票3回答
玻璃鱼线程池问题

我们正在使用Glassfish 3.0.1,但遇到了非常长的响应时间;对于我们25%的POST/PUT请求来说,响应时间长达5分钟,在响应返回时,前端负载均衡器已超时。 我认为原因是请求正在排队等待可用线程。我的理论是基于访问日志显示请求完成需要几秒钟,但请求执行时间比预期晚了五分钟。 有...

71得票7回答
C# - 线程池 vs 任务(Tasks)

如一些人可能在.NET 4.0中看到的,它们添加了一个新的命名空间System.Threading.Tasks,它基本上是什么意思,就是一个任务。我只使用它几天,从使用线程池。 哪个更有效率且资源消耗较少?(或者总体而言更好?)

24得票3回答
等待QueueUserWorkItem完成

如果我使用QueueUserWorkItem将任务添加到线程池中...如何在所有任务完成之前阻止程序继续执行? 我知道我可以添加一些逻辑来防止应用程序在所有任务完成之前运行,但我想知道是否有像Thread.Join()这样的方法或者是否有任何方法来检索分配了任务的每个线程。

36得票3回答
为什么ScheduledThreadPoolExecutor只接受固定数量的线程?

我可能会想象一些需要花费很长时间的任务,而ScheduledThreadPoolExecutor会为需要运行的其他任务创建额外的线程,直到达到最大线程数为止。 但是似乎我只能为线程池指定固定数量的线程,为什么?

14得票5回答
线程池中的死锁问题

我在 Ruby 中找不到一个像样的 ThreadPool 实现,所以我写了我的实现(部分基于这里的代码:http://web.archive.org/web/20081204101031/http://snippets.dzone.com:80/posts/show/3276,但修改为等待/信...

7得票4回答
以Java编程语言,负载均衡地将10个无限的任务分配到4个线程中。

我有10个计算任务需要完成,每个任务耗时(几乎)无限。例如:计算π的下一位、解决NP难的约束满足问题等。 我有4个线程(在拥有8个内核的机器上,使用4个线程池,以避免使机器死锁和进程死锁)。 使用Java 8,如何将这10个工作分配到这4个线程中? 这是一个不好的想法: Executo...

8得票3回答
将单线程应用迁移到多线程、并行执行、蒙特卡罗模拟。

我被委托优化一个现有的单线程蒙特卡罗模拟。这是一个C#控制台应用程序,没有数据库访问,它从CSV文件中加载数据一次,并在最后写出数据,因此它基本上只受CPU限制,也只使用了约50MB的内存。 我已经通过Jetbrains dotTrace分析器运行了它。总执行时间中,大约30%是生成均匀随机...

17得票2回答
使用boost创建线程池

是否可以使用boost的线程库创建一个线程池?我在查找boost库中的内容时没有找到线程池管理器(或类似的东西)...有什么办法可以实现吗? 谢谢!