java如何在启动子进程的同时启动timeout

java如何在启动子进程的同时启动timeout,第1张

可以使用Executors.newSingleThreadExecutor()方法来创建一个ExecutorService,然后使用submit()方法提交任务,并使用Future.get(long timeout, TimeUnit unit)方法来获取任务的结果。如果在指定的时间内任务没有完成,则会抛出TimeoutException异常。因此,可以使用这种方法来在启动子进程的同时启动timeout。

应该是没有这个功能的,因为线程池里面的线程实际上是复用的,即执行完一个Job以后会从Quenue(任务队列)里面取新的JOB。

如果有这样的需求可以:

1)控制JOB的执行时间不能太长,否则可能会造成阻塞;

2)在JOB的实现(run方法)里面做相应的控制;

3)如果JOB有长时间和短时间两种模式,可以考虑放在两个线程池中,避免长时间的任务阻塞短时间的任务;

4)也可以控制等待队列的任务个数,但是Executors默认的Factory方法是没有这个参数的,需要直接new ThreadPoolExecutor


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11335962.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存