40得票1回答
事件驱动和基于线程的服务器系统有什么区别?

Node.js是一种事件驱动的I/O,是一个单线程服务器,通过回调函数执行操作,不会阻塞主线程。 但是它是如何实现非阻塞I/O的呢? 如果它很容易管理,为什么基于线程的系统无法管理它? 在单个事件驱动线程背后运行的其他线程(如基于线程的系统)是否与线程类似? 如果其他线程意味着工作者(在...

40得票6回答
从ExecutorService获取的新线程中传播ThreadLocal

我正在使用ExecutorService和Future在单独的线程中运行一个带有超时的进程(示例代码here)("生成"线程发生在AOP Aspect中)。 现在,主线程是一个Resteasy请求。 Resteasy使用一个或多个ThreadLocal变量来存储一些上下文信息,我需要在Res...

38得票7回答
Java中线程池的作用是什么?

线程池的作用是什么?有好的现实世界的例子吗?

38得票3回答
线程池 SetMaxThreads 和 SetMinThreads 的魔数问题

设置ThreadPool的SetMaxThreads和SetMinThreads的值是否有一个神奇的数字或公式?我有成千上万个需要执行的长时间运行的方法,但找不到这些值的完美匹配。任何建议将不胜感激。

38得票4回答
现有线程池的C语言实现

你推荐哪些使用C语言实现的开源pthread线程池? 如果这个实现: 轻量级:glib、APR、NSPR等工具需要较大的代价,我更愿意只有两个文件(头文件和实现文件)。 在多个平台上进行测试(Linux、BSD、Mac OS X等)。 仍在维护。

38得票1回答
在线程内调用condition.wait()会导致任何未来的检索在主线程上阻塞。

我有一些任务在线程池中执行,这些任务共享一个可重入的读写锁。如果它们执行结束,这些任务会返回 futures。当锁遇到竞争时,可重入的读写锁会等待条件。 我使用的库公开了一个 wait_for_any 方法,用于从任务集合中检索一个或多个已完成的 futures。然而,即使有一个或多个 fu...

37得票4回答
带有有界队列的Java线程池

我正在使用 java.util.concurrent 库中的 Executors 类来创建一个固定大小的线程池,用于运行 Web 服务器的请求处理程序:static ExecutorService newFixedThreadPool(int nThreads) 并且描述如下: 创...

37得票11回答
多线程作业队列管理器

我需要在交互式应用程序中管理CPU密集型的多任务作业。具体而言,我的应用程序是一个工程设计界面。当用户调整模型的不同参数和选项时,后台运行多个模拟,并在完成后显示结果,甚至在用户仍在编辑值时也可能如此。由于多个模拟所需的时间各不相同(有些是毫秒级别,有些需要5秒,有些需要10分钟),因此基本上...

37得票6回答
如何等待ThreadPoolExecutor完成任务

我的问题:如何在ThreadPoolExecutor上执行一堆线程对象,等待它们全部完成后再继续执行下去? 我是新手,正在通过这段代码学习ThreadPoolExecutor的工作原理。目前,我甚至没有用对象填充BlockingQueue,因为我不知道如何在不使用另一个RunnableObj...

36得票1回答
SynchronizationContext.Send和SynchronizationContext.Post有什么区别?

感谢Jeremy Miller在Functional Programming For Everyday .NET Development中的好工作,我有一个可行的命令执行器,它可以做我想做的一切(在线程池中进行繁重的工作,将结果或错误发送回同步上下文,甚至将进度发布回同步上下文),但我无法解释...