Scala 带有阻塞调用的默认executioncontext

Scala 带有阻塞调用的默认executioncontext,scala,Scala,我知道使用会通知线程池,您传递给它的代码块包含长时间运行或阻塞操作。允许游泳池临时繁殖新的工人,以确保饥饿永远不会发生。我在某些地方使用阻塞块,但现在认为继续使用带有默认executioncontext的阻塞块可能并不理想,因为在创建临时工作人员然后销毁他们时必须有相关的成本。相反,我可以创建单独的执行上下文来运行阻塞调用,以避免创建/销毁临时工作人员的成本工作线程,但在专用执行上下文中具有足够的池大小。或者可以使用一个executioncontext并继续使用块 基本上所有的db调用都是阻塞的

我知道使用会通知线程池,您传递给它的代码块包含长时间运行或阻塞操作。允许游泳池临时繁殖新的工人,以确保饥饿永远不会发生。我在某些地方使用阻塞块,但现在认为继续使用带有默认executioncontext的阻塞块可能并不理想,因为在创建临时工作人员然后销毁他们时必须有相关的成本。相反,我可以创建单独的执行上下文来运行阻塞调用,以避免创建/销毁临时工作人员的成本工作线程,但在专用执行上下文中具有足够的池大小。或者可以使用一个executioncontext并继续使用块


基本上所有的db调用都是阻塞的,如果继续使用一个ExecutionContext,它们将被包装在async{blocking{}}中。可能有上百个或更多的DAO阻塞API。而且可能会有成千上万的用户访问该系统。

这取决于具体情况。你能给我们提供更多的工作信息吗?有关阻塞呼叫运行次数的数字,或其他一些系统级指标,以便更好地回答您的问题,这些都会很有帮助。@wheaties添加了一些详细信息。如果有帮助,请告诉我。