问题标签 [executors]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 多线程 newSingleThreadExecutor 饥饿死锁
这直接来自Java Concurrency in Practice。以下导致死锁:
我无法弄清楚为什么这会导致死锁。我已经检查过了。它甚至返回 header.get() 并打印检索到的标题,那么它是如何死锁的?
java - 在java中发送批量HTTP
该程序用于读取文件,并将每一行作为 http 发送。文件中的每一行都是一个 url。
例如 http://localhost:8080/?a=1&b=2
发送任务.java
}
当我发送包含 500,000 行的文件时,它可以工作。但随后它发送了 100,000 行,发生了一个错误:java.lang.OutOfMemoryError:超出了 GC 开销限制。
- 如何修改程序以确保它可以发送至少 100 万行?谢谢你!
java - 如何让一个执行程序 FixedThreadPool 等待另一个执行程序 SingleThreadExecutor?
我有 3 个任务要做:
- 首先:在同一个执行器中依次下载 htmlFile --------\ ,它工作正常。
二:解压html文件---------/
第三:下载图像 ------> 在另一个执行程序中,我需要下载分成 5 个文件的图像,为此我使用的是 FixedThreadPool(5),即 5 个并行下载。
但是当我点击下载时,我的图像下载开始而不等待 htmlDownload 完成,我怎么能对我的 executorPool 等待我的另一个 executor singleThread?
主类:
我的 DownloadUtil 类:
java - 超时后中止 countDownLatch.await()
我正在使用 anExecutorService
来实现一个 3 线程池,并使用 CountDownLatch 来监视所有线程的完成情况,以便进一步处理。
我曾经countDownLatch.await()
等到所有线程都完成。我希望这个过程countDownLatch.await()
在 TIME OUT 说 45 秒的情况下中止。我该如何实施?
java - 我在java服务器中有五个线程,我应该怎么做才能让它们同时运行一个任务?
我用java编写了一个web服务器,需要一个任务类来将数据上传到另一个服务器,所以我这样做如下:
有Task
器Runnable
。问题是,每次只安排一个线程运行这个new Task()
,其他线程只是空闲,如果有大量数据来,我存储数据的工作队列变得非常大,更糟糕的是,我无法在花药中获取实时数据服务器。我的英语太糟糕了,如果你明白我的意思,我正在徘徊,我想找到解决这个问题的方法,你能帮我吗?
java - 如何识别正确的java Executor?
我们需要做一些异步任务处理,其中大约 30-40 个请求将同时到来,每个请求将启动一个异步任务,大约需要 7-8 秒才能完成。
如果已确定 java executorservice 来执行此类任务,那么用于此目的的空闲类型的 executor 是什么?
我想过使用 CachedThreadPool 但我担心如果创建了太多线程会对应用程序产生任何性能影响吗?
另一种选择是使用 FixedThreadPool 但我很难想到应该用它实例化的空闲无线程......对于这种情况推荐的执行程序是什么,或者我们如何找到合适的执行程序?
java - ScheduledExecutorService,如何在不停止执行程序的情况下停止动作?
我有这个代码:
在某些事件之后,我应该停止在实现的run()
方法中声明的操作。SomethingDoer
Runnable
我怎样才能做到这一点?我无法关闭执行程序,我应该只撤销我的定期任务。我可以用result.get()
这个吗?如果可以,请告诉我它将如何工作。
executors - 如何决定 Executors.newFixedThreadPool 的参数
分配给 Executors.newFixedThreadPool(n) 的适当值应该是什么?有没有这样做的公式?
java - Java并发:用很少的线程执行许多“无限”任务
我正在为根据牛顿定律在空间中移动的一组 N 个粒子构建一个(并发)模拟器。我的想法是将每个粒子建模为一个任务,它与其他粒子(任务)相互作用以获得它们的位置和质量,从而计算它所受的净力。每个粒子任务都是
我可以有很多粒子(100 个或更多),所以我无法创建这么多 Java 线程(映射到物理线程)。我的想法是使用Runtime.getRuntime().availableProcessors()+1
可以执行许多任务的线程。
但是,我不能使用 FixedThreadExecutor 因为粒子任务没有结束。我想使用一个 FixedThreadExecutor ,它还必须能够在内部执行某种调度。你知道一些为此目的吗?
或者,您能否建议我从并发的角度(例如,不同的任务分解)对这样的系统进行建模的更好方法?
Ps:我仅限于“经典”并发机制,不包括actor或类似架构。
java - 使用执行器框架还是普通线程?
最近收到一个面试题:
有一种情况,一个线程在一小时的间隔内执行批处理操作,你会使用执行器框架还是普通线程,为什么?
我很困惑 。
由于只有一个线程,因此不需要执行器服务。我可以使用while
and来做到这一点sleep
。
虽然有一个 ScheduleExecutorService 提供了这么多调度方法?
什么是最好的方法?