Java ScheduledThreadPool多线程在一段时间后停止
我正在开发一个J2SE应用程序,它可以同步存储在不同服务器上的四个数据库中的184辆汽车的GPS信息。对于每辆车,我创建一个线程并存储在ScheduledThreadPool中Java ScheduledThreadPool多线程在一段时间后停止,java,multithreading,scheduling,executorservice,Java,Multithreading,Scheduling,Executorservice,我正在开发一个J2SE应用程序,它可以同步存储在不同服务器上的四个数据库中的184辆汽车的GPS信息。对于每辆车,我创建一个线程并存储在ScheduledThreadPool中 ScheduledExecutorService executor = Executors.newScheduledThreadPool(20); for (int i = 0; i < cars.size(); i++) { Car vec_temp = cars.get(i);
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, 0, sleep, MILLISECONDS);
}
ScheduledExecutorService executor=Executors.newScheduledThreadPool(20);
对于(int i=0;i
纬度和经度信息由SocketServer在XML数据中检索,因此在SyncThread类中,我实例化一个套接字并请求信息并关闭该连接,每15分钟进行一次
由于某种原因,应用程序开始工作得很好,但有时会毫无例外地停止运行
jar作为windows服务运行。根据
如果任务的任何执行
遇到异常,随后
死刑被禁止
也就是说,如果您将代码发布到SyncThread
中,那就太好了,否则几乎无法帮助您。还有,什么是hilo?为什么要安排执行hilo
,而不是carThread
?根据
如果任务的任何执行
遇到异常,随后
死刑被禁止
也就是说,如果您将代码发布到
SyncThread
中,那就太好了,否则几乎无法帮助您。还有,什么是hilo?为什么要安排执行hilo
,而不是carThread
?尝试在可运行的实现中设置一个Try-catch块。其思想是禁止任何异常被抛出给执行者。理想情况下,如果您可以将此事件记录在catch块中并避免将其抛出,则应用程序应按预期工作,并且您将能够识别随后发生的情况。尝试在可运行的实现中设置Try-catch块。其思想是禁止任何异常被抛出给执行者。理想情况下,如果您可以将此事件记录在catch块中并避免将其抛出,则应用程序应按预期工作,并且您将能够识别随后发生的情况。SyncThread只需连接到套接字服务器kkSocket=new socket(ip,端口);out=新的PrintWriter(kkSocket.getOutputStream(),true);in=新的BufferedReader(新的InputStreamReader(kkSocket.getInputStream());他们输出一条消息并接收一条新的响应消息,最后关闭连接。。。每15分钟执行一次SyncThread只是简单地连接到一个套接字服务器kkSocket=新套接字(ip,端口);out=新的PrintWriter(kkSocket.getOutputStream(),true);in=新的BufferedReader(新的InputStreamReader(kkSocket.getInputStream());他们输出一条消息并接收一条新的响应消息,最后关闭连接。。。每15分钟做一次OK Yohan我试过并抛出了这个java.lang.Exception:连接超时:连接似乎是套接字连接有什么想法吗?@marman是的。这意味着您尝试建立的网络连接超时,因为另一端没有按预期及时响应。好的,Yohan,我尝试了,并抛出了这个java.lang.Exception:连接超时:连接似乎是套接字连接,知道吗?@marman,是的。这意味着您尝试建立的网络连接超时,因为另一端没有按预期及时响应。