可以使用 newScheduledThreadPool 的 schedule方法 创建一个延迟任务线程
下面是示例代码。成功实现子线程等待,主线程不阻塞的问题。
importjava.util.concurrent.Executors; importjava.util.concurrent.ScheduledExecutorService; importjava.util.concurrent.TimeUnit; publicclassMain { publicstaticvoidmain(String[] args) { // 创建一个定时任务执行器ScheduledExecutorServiceexecutor=Executors.newScheduledThreadPool(1); // 延迟10秒后执行任务Runnabletask=newRunnable() { publicvoidrun() { // 在这里执行hcNetSDK.NET_DVR_StopSaveRealData()方法log.info("test:10秒后执行"); } }; executor.schedule(task, 10, TimeUnit.SECONDS); // 关闭定时任务执行器executor.shutdown(); } }