jjzjj

Executor

全部标签

java - Spring @ExceptionHandler 和多线程

我有以下Controller建议:@ControllerAdvicepublicclassExceptionHandlerAdvice{@ExceptionHandler(NotCachedException.class)@ResponseStatus(HttpStatus.BAD_REQUEST)publicModelAndViewhandleNotCachedException(NotCachedExceptionex){LOGGER.warn("NotCachedException:",ex);returngenerateModelViewError(ex.getMessage(

java - Spark Driver 内存和 Executor 内存

我是Spark的初学者,我正在运行我的应用程序以从文本文件中读取14KB数据,进行一些转换和操作(收集、收集AsMap)并将数据保存到数据库我在我的macbook上本地运行它,它有16G内存,8个逻辑核心。Java最大堆设置为12G。这是我用来运行应用程序的命令。bin/spark-submit--classcom.myapp.application--masterlocal[*]--executor-memory2G--driver-memory4G/jars/application.jar我收到以下警告2017-01-1316:57:31.579[Executortasklaunc

java - ExecutorService 中如何限制线程?

我使用ExecutorService在不同的线程中运行许多任务。有时,过多的Runnable实例在线程池中等待可能会导致OutOfMemory问题。我尝试编写一个阻塞作业执行器来解决它。有没有官方的解决方案?例如:BlockingJobExecutorexecutor=newBlockingJobExecutor(3);for(inti=0;i这是BlockingJobExecutor类:importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;importjava.util.conc

java - 什么时候使用 Callable 对象在 Java Executor 中调用 call() 方法?

这是来自example的一些示例代码.我需要知道的是call()何时在可调用对象上被调用?是什么触发了它?publicclassCallableExample{publicstaticclassWordLengthCallableimplementsCallable{privateStringword;publicWordLengthCallable(Stringword){this.word=word;}publicIntegercall(){returnInteger.valueOf(word.length());}}publicstaticvoidmain(Stringargs[

Java:ExecutorService 的效率不如手动线程执行?

我有一个多线程应用程序。当使用Thread.start()手动启动线程时,每个并发线程恰好使用25%的CPU(或恰好一个核心-这是在四核机器上)。因此,如果我运行两个线程,CPU使用率正好是50%。然而,当使用ExecutorService运行线程时,似乎有一个“幽灵”线程正在消耗CPU资源!一个线程使用50%而不是25%,两个线程使用75%,等等。这会不会是某种Windows任务管理器的产物?执行者服务代码是ExecutorServiceexecutor=Executors.newFixedThreadPool(threadAmount);for(inti=1;iThread.sta

java - 工作/任务窃取 ThreadPoolExecutor

在我的项目中,我正在构建一个Java执行框架,用于接收来自客户的工作请求。工作(大小不一)被分解为一组任务,然后排队等待处理。有单独的队列来处理每种类型的任务,并且每个队列都与一个线程池相关联。ThreadPools的配置方式使引擎的整体性能达到最佳。这种设计有助于我们有效地平衡请求的负载,并且大请求不会最终占用系统资源。然而,有时当一些队列为空并且它们各自的线程池处于空闲状态时,解决方案会变得无效。为了让它变得更好,我正在考虑实现工作/任务窃取技术,以便负载较重的队列可以从其他线程池获得帮助。然而,这可能需要实现我自己的执行器,因为Java不允许多个队列与线程池相关联,并且不支持工作

java - 为什么要恢复在线程池线程中运行的任务的中断标志

此片段来自JCIP(BrianGoetz)list6.15f.get()抛出InterruptedException和ExecutionException。现在,这些异常(exception)是特定于future的吗?意味着future所代表的特定任务被中断或有内部异常。问题-为什么我需要使用“Thread.currentThread().interrupt()”恢复中断?,因为我的任务运行的线程的中断标志不是吗?这有点令人困惑。为什么抛出launderThrowable异常?如果其中一个downloadImage有问题,我们不应该只处理其他下载的图像而不是从这里扔掉,从而“不”处理剩

java - Executor 代替 ExecutorService 有没有什么场景。 Executor 接口(interface)背后的意图?

我想知道是否有任何理由使用Executor而不是ExecutorService。据我所知,JDK中没有实现Executor接口(interface),它也不是ExecutorService,这意味着您必须关闭该服务,以便没有内存泄漏。您无法关闭Executor,但可以使用ExecutorService来关闭它。那么,有没有什么场景可以使用类似的东西:privatefinalExecutor_executor=Executors.newCachedThreadPool();Executor接口(interface)背后的意图是什么?示例表示赞赏。 最佳答案

java - 在多线程环境中使用 JUnit 的奇怪问题

在多线程环境中使用JUnit时,我遇到了一个奇怪的问题。下面的代码应该会失败,但实际上在eclipse中通过了。publicclassExampleTestextendsTestCase{privateExecutorServiceexecutor=Executors.newFixedThreadPool(10);privatevolatilebooleanisDone=false;publicvoidtest()throwsInterruptedException,ExecutionException{executor.submit(newRunnable(){@Overridepu

java - 使用 java.util.concurrent.Executor 阻止 tomcat 停止

背景:我需要使用java.util.concurrent.Executor来序列化WebService中一些遗留代码的执行。我在WebService类中添加了一个成员变量executor。它由springframework从外部注入(inject)。执行器bean定义如下:Tomcat版本:6.0.22Java版本:1.6Spring框架:2.5.5问题:WS按预期工作。我们将它推出到Linux服务器上。然后我们意识到tomcat停止脚本不能再停止服务。我对tomcat实例使用kill-3。在线程转储中,我找到了这些行:"pool-2-thread-1"prio=10tid=0xad6