多线程学习(3):ScheduledExecutorService(newScheduledThreadPool) 与 Runnable接口实现

RT-Thread学习笔记(5):SPI驱动框架分析 1、两个设备模型 在spi驱框架中,一般会自己初始化一个总线设备(rt_spi_bus),当我们通过挂载后,会相应注册一个从设备(rt_spi_device)。 1、总线设备模型 struct rt_spi_bus { struct rt_device parent; rt_uint8_t mode; const struct rt_spi_ops *ops; struct rt_mutex lock; struct rt_spi_device *owner; }; 阅读详情

2018年7月9日14:13:06


【1】

使用参考:



【2】线程池

    /**
     * Creates a thread pool that can schedule commands to run after a
     * given delay, or to execute periodically.
     * @param corePoolSize the number of threads to keep in the pool,
     * even if they are idle.
     * @return a newly created scheduled thread pool
     * @throws IllegalArgumentException if {@code corePoolSize < 0}
     */
    public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize) {
        return new ScheduledThreadPoolExecutor(corePoolSize);
    }


【3】测试例子

WorkerThread.java:(实现Runnable接口的任务类)

package test01.SheduledThreadPoolExecutorTest;

import java.util.Date;

public class WorkerThread implements Runnable{
	private String command;
	
	public WorkerThread(String s){
		this.command = s;
	}

	@Override
	public void run() {
		System.out.println(Thread.currentThread().getName()+" Start .Time = "+new Date());
		processCommand();
		System.out.println(Thread.currentThread().getName()+" End .Time = "+new Date());
	}
	
	private void processCommand(){
		try{
			Thread.sleep(5000);
		}catch(InterruptedException e){
			e.printStackTrace();
		}
	}
	
	public String toString(){
		return this.command;
	} 
}


SheduledThreadPoolExecutorTest.java:(线程池测试类)

package test01.SheduledThreadPoolExecutorTest;

import java.util.Date;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class SheduledThreadPoolExecutorTest {

	/**
	 * @param args
	 * @throws InterruptedException 
	 */
	public static void main(String[] args) throws InterruptedException {
		
		ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
		
		System.out.println("Current Time = "+new Date());
		
		for(int i=0;i<3;i++){
			Thread.sleep(1000);
			WorkerThread worker = new WorkerThread("do heavy processing.");
			scheduledThreadPool.schedule(worker, 10, TimeUnit.SECONDS);
		}
		
		Thread.sleep(10000);
		
		scheduledThreadPool.shutdown();
		while(!scheduledThreadPool.isTerminated()){
			//wait for all tasks to finish..
		}
		System.out.println("Finished all threads..");
	}

}


输出结果:   

Current Time = Thu Jul 12 09:20:09 CST 2018
pool-1-thread-1 Start .Time = Thu Jul 12 09:20:20 CST 2018
pool-1-thread-2 Start .Time = Thu Jul 12 09:20:21 CST 2018
pool-1-thread-3 Start .Time = Thu Jul 12 09:20:22 CST 2018
pool-1-thread-1 End .Time = Thu Jul 12 09:20:25 CST 2018
pool-1-thread-2 End .Time = Thu Jul 12 09:20:26 CST 2018
pool-1-thread-3 End .Time = Thu Jul 12 09:20:27 CST 2018
Finished all threads..

【Mode】FDE 求解器工作流程 Lumerical---FDE(Finite Difference Eigenmode) Solver 阅读详情

相关推荐

(8)机器人动力学

机器人是一个具有多输入多输出的复杂动力学系统,存在严重的非线性,需要非常系统的方法对机器人进行动力学研究。常用的机器人动力学建模方法有:Lagrange(拉格朗日)动力学方法、Newton-Euler(牛顿-欧拉)动力学方法、Gauss(高斯)动力学方法、Kane(凯恩)动力学方法等。机器人动力学研究的是机器人的运动和作用力之间的关系。机器人的动力学问题包括动力学正问题和动力学逆问题。动力学正问题是对于给定的关节驱动力......

rouyu308的博客 9498

线程池核心之ScheduledThreadPoolExecutor

从线程池的UML类图可以看到,ScheduledThreadPoolExecutor是ThreadPoolExecutor的子类,所以它拥有ThreadPoolExecutor的所有功能,同时它又实现了ScheduledExecutorService接口,所以,这个接口的实现又赋予它新的功能,那就是定时任务的功能 ...

知识共享,你我皆是知识的搬运工 3106

2024最新实战:用1Panel面板+Docker快速部署Frps服务端(含Nginx配置模板)

本文详细介绍了2024年企业级内网穿透方案,通过1Panel面板和Docker技术快速部署Frps服务端,包含Nginx反向代理配置模板。从服务器选型、系统准备到安全加固,提供全栈实战指南,帮助企业和开发者高效实现内网穿透需求。

weixin_27966471的博客 419

周期性线程池 newScheduledThreadPool

【代码】周期性线程池 newScheduledThreadPool。

张紫娃的博客 3533

图形引擎实战:镭射效果制作分享

该方案的优势1.遵循物理的2.可以使用少量的参数去调控镭射的效果。计算相对简单,缺点仍是颜色不能够自定义,还有一种常见的方案是采样一张镭射贴图来模拟,好处是颜色可以自定义同时性能上还很高效没有复杂的公式计算。我查阅了网上普遍的方案,常见的做法是制作一个Ramp图生成工具,然后将生成好的ramp图赋给材质。这两个方案的好处是美术同学可以手动的去控制镭射的颜色。最后就是Shader中对Ramp图的采样的部分,Ramp图的UV坐标是使用fresnel作为Ramp的U轴坐标,0.5作为V轴坐标。

qq_41166022的博客 1353

RK3568笔记九十四:基于QT的YOLOV5目标检测

基于RK3568平台的实时目标检测应用,使用YOLOv5模型和RKNN推理引擎实现摄像头实时目标检测,并通过Qt界面显示检测结果。主要功能实时摄像头目标检测:从摄像头获取视频流,使用YOLOv5模型进行目标检测RKNN推理加速:利用RK3568内置的NPU进行模型推理加速图形界面显示:使用Qt框架构建用户界面,实时显示检测结果RGA图像处理:使用Rockchip Graphic Accelerator进行图像缩放处理。

522

高并发编程之ScheduledThreadPoolExecutor讲解

一、ScheduledThreadPoolExecutor介绍 ScheduledThreadPoolExecutor,它可另行安排在给定的延迟后运行命令,或者定期执行命令。需要多个辅助线程时,或者要求 ThreadPoolExecutor 具有额外的灵活性或功能时,此类要优于Timer。 二、ScheduledThreadPoolExecutor相对于Timer的优势 ScheduledThreadPoolExecutor是一个使用线程池执行定时任务的类,相较于Java中提供的另一个执行定时任务的类Tim

s_156的博客 3012

2026华为OD机试真题 9月27日 新系统 【均衡调度】

华为OD机试真题 新系统 9月27号【均衡调度】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【均衡调度】多语言题解。

qq_45776114的博客 1763

周期性线程池newScheduledThreadPool详解

线程池支持定时以及周期性执行任务,创建一个corePoolSize为传入参数,最大线程数为整形的最大数的线程池 public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize) { return new ScheduledThreadPoolExecutor(corePoolSi...

javaboy 4万+

FLUENT Meshing Watertight Geometry工作流入门 - 4 局部加密区域

总结一下本课程中学到的内容:我们了解了如何使用模型中特定兴趣区域的BOI和FOI局部尺寸控制来加密网格。然后,了解了如何使用Box类型的局部细化区域。最后,学习了Ansys Fluent Meshing Watertight Geometry Workflow的Offset Surface类型创建局部细化区域任务。

B_etter_Man的博客 6640

SAP-ABAP:SAP系统调优利器:RZ11动态参数修改全指南

SAP系统调优利器:RZ11动态参数修改全指南

baidu_35680696的博客 970

Java多线程的ScheduledExecutorService使用

ScheduledExecutorService使用(一)定时任务的几种方案介绍(二)ScheduledExecutorService介绍(三)ScheduledExecutorService的使用3.1 schedule()使用 (一)定时任务的几种方案介绍 使用java做一个后台的定时任务,方案可以有如下几种: 1、JDK自带的Timer 2、JDK1.5+ 新增的ScheduledExecutorService 3、Quartz :简单却强大的JAVA作业调度框架,可以支持动态的Cron语法 (二)S

qq_1763467007的博客 9492

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java_线程池_ScheduledExecutorService_newScheduledThreadPool(指定个数线程)_scheduleAtFixedRate(new Runnable())

newScheduledThreadPool /* * 计时器线程池 * 四个线程可以重复使用,不创建新的线程 */ package java_key_value; import java.util.Random; import java.util.concurrent.Executors; import java.util.concurrent.Sc...

zs_life的博客 1150

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Java并发包:ScheduledExecutorService

文章译自:http://tutorials.jenkov.com/java-util-concurrent/index.html 抽空翻译了一下这个教程的文章,后面会陆续放出,如有不妥,请批评指正。 转自请注明出处。ScheduledExecutorServicejava.util.concurrent.ScheduleExecutorService是一种安排任务执行的ExecutorSer

charming的专栏 8102

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

java通过ScheduledExecutorService实现定时任务

一、java实现定时任务的方式 java完全不引人其他框架,自己实现定时任务的方法常用的大概有两种,JDK自带的Timer以及JDK1.5+ 新增的ScheduledExecutorService; 二、Timer方式实现 代码如下 import java.util.Timer; import java.util.TimerTask; public class TestA { ...

bird_tp的博客 6477

ScheduledExecutorService学习笔记

ScheduledExecutorService学习笔记

DreamDemo 427

03_java内置线程池(ScheduledExecutorService)

java内置线程池(ScheduledExecutorService)

w7635122886的博客 565

java ScheduledExecutorService

【代码】java ScheduledExecutorService。

lsq126yx的博客 457

ScheduledExecutorService详解

您可以轻松地安排任务在未来的某个时间点执行,或者按照固定的时间间隔重复执行,从而满足不同的调度需求。从输出结果中可以看出,任务1在5秒后执行,任务2在2秒后开始执行,然后每隔3秒重复执行。的子接口,扩展了线程池的功能,允许您在预定的时间执行任务,也可以周期性地重复执行任务。可以用于在未来的某个时间点执行任务,也可以按固定的时间间隔重复执行任务。方法安排另一个任务在2秒后开始执行,然后每隔3秒重复执行。等,因此可以像普通的线程池一样执行任务。方法安排一个任务在5秒后执行,使用。接口中的其他方法,如。

kankan_s的专栏 3226

Executors.newScheduledThreadPool

public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long dela...

进行中 985

java线程池(四)之newScheduledThreadPool

newScheduledThreadPool测试类 package com.thread.pool; import java.util.Date; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; public class TestScheduledPool { public stat

weixin_44613100的博客 1268

Java并发newScheduledThreadPool()方法

可以通过调用Executors类的方法获得一个调度的线程池。Java。

unber的博客 541

使用ScheduledExecutorService代替Thread.sleep()、Timer 实现定时执行任务

//登陆操作时显示等待加载框ProgressDialog final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1); executorService.scheduleAtFixedRate(new Runnable() { @Override public void ru...

m0_38059938的博客 1908

线程的3种实现方式并深入源码简单分析实现原理

前言 本文介绍下线程的3种实现方式并深入源码简单的阐述下原理 三种实现方式 Thread Runnable Callable&Future 深入源码简单刨析 Thread Thread类实现了Runnable接口 枚举类 State JVM中的线程必须只能是以上6种状态的一种。这些状态是JVM状态并不能和操作系统线程状态互相映射 NEW 线程刚创建,还未执行(start方法) RUNNABLE 已就绪可运行的状态。 处于此状态的

孟凡霄 345

ScheduledExecutorService的用法

import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; public class TestScheduledExecutorService { private ScheduledEx

wuxinliulei的专栏 1069

ScheduledExecutorService

public class ScheduledExecutorServiceDemo { public static void main(String[] args) { ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(10); sched

weixin_40333020的博客 228
上一篇: 多线程学习(1:):timer + scheduleAtFixedRate 与 线程池之小结
下一篇: 开发日常小结(27): Infinity与NaN的实现
后台技术汇
博客等级 码龄11年 670粉丝 531原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后台技术汇

对你的帮助,是对我的最好鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值