Java ScheduledThreadPool多线程在一段时间后停止

问题描述

| 我正在开发一个J2SE应用程序,该应用程序可以同步存储在不同服务器上四个数据库中的184辆汽车的GPS信息。我为每辆车创建一个Thread,并将其存储在ScheduledThreadPool中
    ScheduledExecutorService executor = Executors.newScheduledThreadPool(20);

    for (int i = 0; i < cars.size(); i++) {
        Car vec_temp = cars.get(i);
        SyncThread carThread = new SyncThread(q,vec_temp,reintentos);
        long sleep = carThread.calculateVehicleDelay();
        executor.scheduleAtFixedRate(hilo,sleep,MILLISECONDS);
    }
经度和纬度信息由SocketServer以XML数据检索,因此在SyncThread类中,我实例化了一个Socket并询问信息并关闭该连接,每15分钟进行一次连接... 该应用程序由于某种原因开始运行良好,有时会在无异常的情况下停止运行... 该jar正在作为Windows服务运行。     

解决方法

        根据API,   如果有任务执行   遇到异常,随后   处决被禁止。 话虽如此,如果您将代码张贴在ѭ1内会很好,否则几乎不可能为您提供帮助。还有,
hilo
是什么?为什么要安排执行
hilo
,而不是
carThread
?     ,        尝试在您的Runnable实现中放置一个try-catch块。想法是禁止任何异常抛出给执行者。理想情况下,如果您可以将此事件记录在catch块中并避免抛出该事件,则您的应用程序应该可以按预期运行,并且您将能够确定之后发生的情况。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...