jjzjj

executorService

全部标签

java - join 和 CountDownLatch 有什么区别?

当等待其他线程完成时,我们可以使用join或CountdownLatch。使用这两种机制的优缺点是什么? 最佳答案 如果您自己处理线程,则只能使用Thread.join。大多数人选择不直接处理线程处理的细节,而是使用ExecutorService为他们处理。ExecutorService不会直接显示它们是如何执行任务的,因此您必须使用CountDownLatch:(假设您不想只是shutdown整个服务,也就是。)ExecutorServiceservice=Executors.newFixedThreadPool(5);final

java - 如何检查 ExecutorService 上运行的所有任务是否已完成

我有用于同步推送/弹出元素的ConcurrentLinkedDeque,我有一些异步任务正在从堆栈中获取一个元素,如果这个元素有邻居,它将把它推到堆栈中。示例代码:privateConcurrentLinkedDequestack=newConcurrentLinkedDeque();privateExecutorServiceexec=Executors.newFixedThreadPool(5);while((item=stack.pollFirst())!=null){if(item==null){}else{Runnableworker=newSolider(this,item

java - 如何检查 ExecutorService 上运行的所有任务是否已完成

我有用于同步推送/弹出元素的ConcurrentLinkedDeque,我有一些异步任务正在从堆栈中获取一个元素,如果这个元素有邻居,它将把它推到堆栈中。示例代码:privateConcurrentLinkedDequestack=newConcurrentLinkedDeque();privateExecutorServiceexec=Executors.newFixedThreadPool(5);while((item=stack.pollFirst())!=null){if(item==null){}else{Runnableworker=newSolider(this,item

Java 支持三种不同的并发模型

我在多线程环境中经历不同的并发模型(http://tutorials.jenkov.com/java-concurrency/concurrency-models.html)文章重点介绍了三种并发模型。并行worker第一个并发模型就是我所说的并行worker模型。新的工作分配给不同的worker。装配线worker像工厂流水线上的worker一样组织起来。每个worker只完成全部工作的一部分。当该部分完成后,worker将工作转发给下一个worker。每个工作线程都在自己的线程中运行,并且不与其他工作线程共享任何状态。这有时也称为无共享并发模型。功能并行函数并行的基本思想是使用函数

Java 支持三种不同的并发模型

我在多线程环境中经历不同的并发模型(http://tutorials.jenkov.com/java-concurrency/concurrency-models.html)文章重点介绍了三种并发模型。并行worker第一个并发模型就是我所说的并行worker模型。新的工作分配给不同的worker。装配线worker像工厂流水线上的worker一样组织起来。每个worker只完成全部工作的一部分。当该部分完成后,worker将工作转发给下一个worker。每个工作线程都在自己的线程中运行,并且不与其他工作线程共享任何状态。这有时也称为无共享并发模型。功能并行函数并行的基本思想是使用函数

java - 为什么ExecutorService接口(interface)没有实现AutoCloseable?

未能在线程执行器上调用shutdown()将导致应用程序永不终止。关闭ExecutorService的最佳做法是:ExecutorServiceservice=null;try{service=Executors.newSingleThreadExecutor();//addtaskstothreadexecutor…}finally{if(service!=null)service.shutdown();}既然Java知道try-with-resources的概念,如果我们能做到这一点不是很好吗?try(service=Executors.newSingleThreadExecuto

java - 为什么ExecutorService接口(interface)没有实现AutoCloseable?

未能在线程执行器上调用shutdown()将导致应用程序永不终止。关闭ExecutorService的最佳做法是:ExecutorServiceservice=null;try{service=Executors.newSingleThreadExecutor();//addtaskstothreadexecutor…}finally{if(service!=null)service.shutdown();}既然Java知道try-with-resources的概念,如果我们能做到这一点不是很好吗?try(service=Executors.newSingleThreadExecuto

java - 删除 ThreadPoolExecutor 的所有排队任务

我有一个关于ThreadPoolExecutor的相当简单的问题。.我有以下情况:我必须使用队列中的对象,为它们创建适当的工作任务并将它们提交给ThreadPoolExecutor。这很简单。但在关闭场景中,许多工作人员可能会排队等待执行。由于其中一个任务可能运行了一个小时,并且我希望应用程序相对快速地正常关闭,因此我想丢弃ThreadPoolExecutor中的所有排队任务,而已经处理的任务应该正常完成。ThreadPoolExecutor文档有一个remove()方法,但只允许删除特定任务。purge()仅适用于已取消的future任务。我的想法是清除包含所有排队任务的队列。Thr

java - 删除 ThreadPoolExecutor 的所有排队任务

我有一个关于ThreadPoolExecutor的相当简单的问题。.我有以下情况:我必须使用队列中的对象,为它们创建适当的工作任务并将它们提交给ThreadPoolExecutor。这很简单。但在关闭场景中,许多工作人员可能会排队等待执行。由于其中一个任务可能运行了一个小时,并且我希望应用程序相对快速地正常关闭,因此我想丢弃ThreadPoolExecutor中的所有排队任务,而已经处理的任务应该正常完成。ThreadPoolExecutor文档有一个remove()方法,但只允许删除特定任务。purge()仅适用于已取消的future任务。我的想法是清除包含所有排队任务的队列。Thr

java - Jboss Java EE 容器和一个 ExecutorService

我有一个独立的java应用程序,它使用ExecutorService来并行处理多个作业ExecutorServicees=Executors.newFixedThreadPool(10);我现在想在EJBbean中重复使用相同的解决方案,但不确定如何正确初始化ThreadPool,因为我通常会离开JavaEE容器来控制所有线程资源。我可以只使用相同的代码还是有其他正确的方法来获取Jboss托管线程池? 最佳答案 在EJB中执行此操作的正确方法是使用ManagedExecutorService,它是ConcurrencyUtilsAP