executorservice

    0热度

    1回答

    我真的很难实现这一点。最近我学习了多线程,并开始使用executor服务异步运行作业。 我在这里有一种情况,如: final ArrayList<String> sList = new ArrayList<String>(); final ArrayList<String> gList = new ArrayList<String>(); final JSONArray stateId = [

    0热度

    1回答

    我在阅读有关命令模式的内容,并试图在JDK中找到它的实现。我认为执行者服务是命令模式的一种实现。任何专家都可以证实这一点吗?

    1热度

    1回答

    我需要配置通过ExecutorCompletionService调用API的重试策略。 示例代码: public void func() throws Exception{ ExecutorService executorService = Executors.newFixedThreadPool(5); CompletionService<String> completion

    0热度

    3回答

    使用案例:每次需要处理作业时创建一个新线程。 当前实现:我正在使用具有固定大小线程池的Executor服务,比如说50.对于每项工作,我都会向执行程序服务提交一个新线程。 问题:一旦作业完成,线程不会死亡并进入等待状态。 (在sun.misc.unsafe.park等待) 分析:根据此链接(WAITING at sun.misc.Unsafe.park(Native Method))和网络上的其他

    1热度

    2回答

    我正在编写一个例程,它将从文件中检索URL列表,使用JSoup获取每个URL的内容,查找某些模式并将结果写入输出文件(一个用于分析每个URL)。 我有一个WebPageAnalysisTask(实现可赎回)和现在它返回null,但它会返回保存处理结果的对象(做): public WebPageAnalyzerTask(String targetUrl, Pattern searchPattern)

    1热度

    1回答

    我在这里有一种情况。我正在使用Executor Service来使用多线程。所以,现在我试图给地图添加一个值,并在我完成该循环后立即清除每个线程的值。我为此写了下面的代码。 我已经创建了一张地图,并保存每次迭代的值并清除它。但是,因为我正在使用Executor Service创建10read并将值添加到我相信的地图中。这就是为什么我能够看到多个值,即使我只是添加一个值并清除它。 那么,如何清除地图

    0热度

    1回答

    我正在多线程环境中工作,我有一个同步多地图。我在嵌套循环中使用该映射,我想清除该嵌套循环中每个事务的值。如何实现这一点: public class Test1 { public static void main(String[] args){ ExecutorService executor = Executors.newFixedThreadPool(10); final Multimap

    0热度

    1回答

    我正在使用多线程ExecutorService接口来并行执行任务。但是这里有一个共享资源,我需要在同步块中进行设置,以便一次只有一个线程可以访问它。正如我在同步模块中完成的那样,这项工作大约需要3个多小时才能完成。由于同步块,我没有看到使用多线程的任何一点。可以任何一个建议是没有任何替代方案或实施下面的例子来平行运行速度环路,请最好的方法: ExecutorService executor = E

    1热度

    1回答

    我正在实现一个带有三个类的虚拟程序,以更直观地参考Future的工作方式。我的问题是,有时程序将被锁定在同步方法,它不会继续。我找不到原因。有人能够发现为什么没有一个战士会打印“我赢了”的路线吗?当块 我的电流输出: Fighter1 Fighter1已进入同步方法 Fighter2 Fighter2已进入同步方法 的代码如下。 主要类: import java.util.concurrent.C

    0热度

    1回答

    我目前需要创建多个线程池。每个线程池都是一个单线程线程池。 根据条件将任务分配给每个线程池。所以我需要跟踪线程池。 我该怎么做? 我可以创建一个线程数组吗? ExecutorService executor = Executors.newSingleThreadExecutor(); 这是我们如何创建1个线程池。现在我想创建5个线程池。 ExecutorService[] executor;