`
genier200
  • 浏览: 23193 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类

Executors.newSingleThreadScheduledExecutor【持续更新】

 
阅读更多
工作中遇到的问题:
【问题现象】:
使用
ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
scheduler.scheduleWithFixedDelay(new Runnable() {
             public void run() {
                 //...CODE             }
        }, 1, 10, TimeUnit.SECONDS);
多数的task使用此方法能够正常执行,本人编写的代码中使用此方法,却不能正常执行,系统自动将此连接池对象thread置为无限等待状态:WAITING,无法周期执行,导致问题产生。

【解决】
1,变量保存提交Task后的Future。

2,针对future变量,使用get,如果此线程提交后在运行时发生了,运行时异常,将可以抛出,便于抓取结果分析。

3,在线程中编写try-catch等,不一定有作用,不能捕捉到运行时异常。
分享到:
评论
1 楼 gandilong 2013-01-28  
:wink:

相关推荐

    C++ library for executors.zip

    标题 "C++ library for executors.zip" 暗示了一个关于C++编程的库,它专注于执行器(executors)的概念。执行器是C++并发编程中的一个重要组件,它们负责调度和执行任务,有助于管理线程和资源。在这个库中,可能...

    async-retry:Java 78 的异步重试

    ScheduledExecutorService scheduler = Executors . newSingleThreadScheduledExecutor(); RetryExecutor executor = new AsyncRetryExecutor (scheduler) . retryOn( SocketException . class) . ...

    java版的定时关机小程序 使用java 语言实现

    1. **创建ExecutorService**:首先,我们需要创建一个`ScheduledExecutorService`实例,通常通过`Executors.newSingleThreadScheduledExecutor()`方法来实现,确保只有一个线程处理定时任务。 ```java ...

    java 线程池管理类:Executors_.docx

    ExecutorService pool = Executors.newFixedThreadPool(5, new MyThreadFactory()); ``` 3. 创建单个线程的线程池: ```java ExecutorService singlePool = Executors.newSingleThreadExecutor(); ``` #### ...

    线程池 Executors

    ExecutorService service = Executors.newCachedThreadPool(); ``` 2. 定长线程池:定长线程池是Java中的另一个常用的线程池,它的大小是固定的,可以指定线程池的大小。 ```java ExecutorService service = ...

    Java线程模块Java线程之秒表

    在这里,`Executors.newSingleThreadScheduledExecutor()`创建一个单线程的调度器,`scheduleAtFixedRate()`方法与之前提到的`Timer`类似,可以定期执行任务。 总的来说,Java提供了多种方式来实现秒表功能,可以...

    四大线程池的用法实例

    Java的`java.util.concurrent`包提供了四种主要的线程池实现:`Executors.newFixedThreadPool()`, `Executors.newSingleThreadExecutor()`, `Executors.newCachedThreadPool()`以及`Executors.newWorkStealingPool()...

    Java开发手册(阿里巴巴带-alibaba-IDE插件)

    《阿里巴巴Java开发手册》是阿里内部Java工程师所遵循的开发规范,涵盖编程规约、单元测试规约、异常日志规约、MySQL规约、工程规约、安全规约等,这是近万名阿里Java技术精英的经验总结,并经历了多次大规模一线...

    01.java并发编程面试宝典

    2. Executors.newFixedThreadPool():可定长度限制最大线程数 3. Executors.newScheduledThreadPool():可定时 4. Executors.newSingleThreadExecutor():单例 线程池的核心点是复用机制,它的实现思想是: 1. ...

    银行业务调度系统

    Executors.newScheduledThreadPool(1).scheduleAtFixedRate(new Runnable() { public void run() { Integer number = NumberMachine.getInstance().getCommonManager().generateNewManager(); System.out....

    JAVA定时关机程序源代码

    ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); executor.scheduleAtFixedRate(new Runnable() { @Override public void run() { // 这里编写执行关机的系统命令 } }, 0,...

    一个轮询的java案例

    ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); // 每隔5秒执行一次checkStatus方法 executor.scheduleAtFixedRate(() -> checkStatus(), 0, 5, TimeUnit.SECONDS); } ...

    Executor,Executors,ExecutorService比较.docx

    ExecutorService executorService = Executors.newFixedThreadPool(5); Future<Integer> future = executorService.submit(() -> { int result = computeExpensiveValue(); return result; }); executorService....

    页面控制定时任务源码

    ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); executor.scheduleAtFixedRate(new Runnable() { @Override public void run() { // 执行你的定时任务 System.out....

    JAVA集中常用的线程池比较共8页.pdf.zip

    1. **固定大小线程池** (`Executors.newFixedThreadPool(int nThreads)`): 这种线程池的核心线程数和最大线程数相同,均为`nThreads`。当线程池满时,新提交的任务会在队列中等待,直到有线程空闲出来。适合处理...

    JAVA项目服务器启动时自启动指定的Servlet,并定时执行任务

    executor = Executors.newSingleThreadScheduledExecutor(); executor.scheduleAtFixedRate(new Runnable() { @Override public void run() { // 这里执行你的定时任务 System.out.println("定时任务正在执行....

    java、杀死启动进程、定时执行程序、隐藏黑窗口(dos窗口)、线程异常死亡(保活)

    ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); executor.scheduleAtFixedRate(new RestartServerTask(), 0, 10, TimeUnit.SECONDS); ``` 在这里,`RestartServerTask`是你...

    JAVA石英钟,每一分钟都有报时

    1. 创建一个`ScheduledExecutorService`实例,比如`ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();` 2. 编写一个实现`Runnable`接口的类,负责播放音频和播报时间。 3. 使用`...

    java每天实现定点执行任务java每天实现定点执行任务

    ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); Runnable task = () -> System.out.println("Task executed at the specified time!"); // 每天早上6点执行任务,单位为...

    异常处理问题

    ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); executor.scheduleAtFixedRate(() -> System.out.println("服务器时间更新"), 0, 5, TimeUnit.SECONDS); ``` 总的来说,异常...

Global site tag (gtag.js) - Google Analytics