- 浏览: 378821 次
- 性别:
- 来自: 四川
文章分类
- 全部博客 (247)
- 数据库以及sql (11)
- java (48)
- 爬虫学习 (20)
- java编程 (28)
- python编程以及安装和配置 (27)
- oracle数据库 (32)
- mongodb基本操作 (4)
- linux学习 (7)
- easyUI (2)
- nodeJs (8)
- python学习 (16)
- 其他 (13)
- hadoop (1)
- svn (1)
- 汉字 (1)
- windows (2)
- jsp (5)
- fiddler (1)
- ETL (1)
- teamviewer (1)
- maven (4)
- GIT (2)
- datagrip (1)
- ocr (1)
- redis (3)
- mysql (3)
- linux (1)
- 数据服务 (0)
最新评论
Java通过Executors提供四种线程池:
1.newCachedThreadPool: 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
2.newFixedThreadPool: 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
3.newScheduledThreadPool: 创建一个定长线程池,支持定时及周期性任务执行。
4.newSingleThreadExecutor: 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
1.
package com.teamdev.jxbrowser.chromium.demo.线程池;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class cachedThreadPoolTest {
/**
* @remark 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。线程池中有线程够用,我们就不会新建线程,若不够,就会新建。
* 线程池为无限大,当执行第二个任务时第一个任务已经完成,会复用执行第一个任务的线程,而不用每次新建线程。
* */
public static void main(String[] args) {
//创建一个缓冲线程池
ExecutorService newCachedThread= Executors.newCachedThreadPool();
for (int i = 0; i < 20; i++) {
final int index=i;
try {
Thread.sleep(1000*index);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
newCachedThread.execute(new Runnable(){
public void run() {
// TODO Auto-generated method stub
System.out.println(Thread.currentThread().getName()+" output:"+index);
}
});
}
}
}
2.
package com.teamdev.jxbrowser.chromium.demo.线程池;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class fixedThreadPoolTest {
/**
* @remark 本人理解,每隔两秒创建五个线程,控制线程并发数.
* 定长线程池的大小最好根据系统资源进行设置
* */
public static void main(String[] args) {
//创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。示例代码如下:
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(4);
for (int i = 1; i <= 20; i++) {
final int index = i;
fixedThreadPool.execute(new Runnable() {
public void run() {
try {
//System.out.println(index);
System.out.println(Thread.currentThread().getName()+" output:"+index);
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
}
}
}
3.
package com.teamdev.jxbrowser.chromium.demo.线程池;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class scheduledThreadPoolTest {
/**
* @remark 创建一个定长线程池,支持定时及周期性任务执行
* */
public static void main(String[] args) {
// ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
// scheduledThreadPool.schedule(new Runnable() {
// public void run() {
// // TODO Auto-generated method stub
// System.out.println(Thread.currentThread().getName());
// }
// },5,TimeUnit.SECONDS);//表示延迟5秒执行,只执行一次,并没有周期执行。
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
scheduledThreadPool.scheduleAtFixedRate(new Runnable() {
public void run() {
System.out.println(Thread.currentThread().getName() +"-3s/次");
}
}, 1, 3, TimeUnit.SECONDS);//每隔3秒执行,周期性
}
}
4.
package com.teamdev.jxbrowser.chromium.demo.线程池;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class SingleThreadExecutorPoolTest {
/**
* @remark 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,
* 保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
* */
public static void main(String[] args) {
ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
for (int i = 0; i<100; i++) {
final int index = i;
singleThreadExecutor.execute(new Runnable() {
public void run() {
try {
System.out.println(Thread.currentThread().getName() +" output:"+index);
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
}
}
//你可以使用JDK自带的监控工具来监控我们创建的线程数量来观察:运行线程后
//工具目录:c:\...\jdk\bin\jconsole.exe, 打开
//本地进程下 选择 该在运行的线程路径,双击 进去 观察即可(可能会弹出不安全的警告,点击不安全即可)
}
1.newCachedThreadPool: 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
2.newFixedThreadPool: 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
3.newScheduledThreadPool: 创建一个定长线程池,支持定时及周期性任务执行。
4.newSingleThreadExecutor: 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
1.
package com.teamdev.jxbrowser.chromium.demo.线程池;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class cachedThreadPoolTest {
/**
* @remark 创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。线程池中有线程够用,我们就不会新建线程,若不够,就会新建。
* 线程池为无限大,当执行第二个任务时第一个任务已经完成,会复用执行第一个任务的线程,而不用每次新建线程。
* */
public static void main(String[] args) {
//创建一个缓冲线程池
ExecutorService newCachedThread= Executors.newCachedThreadPool();
for (int i = 0; i < 20; i++) {
final int index=i;
try {
Thread.sleep(1000*index);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
newCachedThread.execute(new Runnable(){
public void run() {
// TODO Auto-generated method stub
System.out.println(Thread.currentThread().getName()+" output:"+index);
}
});
}
}
}
2.
package com.teamdev.jxbrowser.chromium.demo.线程池;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class fixedThreadPoolTest {
/**
* @remark 本人理解,每隔两秒创建五个线程,控制线程并发数.
* 定长线程池的大小最好根据系统资源进行设置
* */
public static void main(String[] args) {
//创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。示例代码如下:
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(4);
for (int i = 1; i <= 20; i++) {
final int index = i;
fixedThreadPool.execute(new Runnable() {
public void run() {
try {
//System.out.println(index);
System.out.println(Thread.currentThread().getName()+" output:"+index);
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
}
}
}
3.
package com.teamdev.jxbrowser.chromium.demo.线程池;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class scheduledThreadPoolTest {
/**
* @remark 创建一个定长线程池,支持定时及周期性任务执行
* */
public static void main(String[] args) {
// ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
// scheduledThreadPool.schedule(new Runnable() {
// public void run() {
// // TODO Auto-generated method stub
// System.out.println(Thread.currentThread().getName());
// }
// },5,TimeUnit.SECONDS);//表示延迟5秒执行,只执行一次,并没有周期执行。
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
scheduledThreadPool.scheduleAtFixedRate(new Runnable() {
public void run() {
System.out.println(Thread.currentThread().getName() +"-3s/次");
}
}, 1, 3, TimeUnit.SECONDS);//每隔3秒执行,周期性
}
}
4.
package com.teamdev.jxbrowser.chromium.demo.线程池;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class SingleThreadExecutorPoolTest {
/**
* @remark 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,
* 保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
* */
public static void main(String[] args) {
ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
for (int i = 0; i<100; i++) {
final int index = i;
singleThreadExecutor.execute(new Runnable() {
public void run() {
try {
System.out.println(Thread.currentThread().getName() +" output:"+index);
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
}
}
//你可以使用JDK自带的监控工具来监控我们创建的线程数量来观察:运行线程后
//工具目录:c:\...\jdk\bin\jconsole.exe, 打开
//本地进程下 选择 该在运行的线程路径,双击 进去 观察即可(可能会弹出不安全的警告,点击不安全即可)
}
发表评论
-
是什么java多态
2018-11-14 13:43 746Java多态 例1.1+1=2 例2."1&quo ... -
经纬度转换
2018-09-25 13:57 0package com.teamdev.jxbrowser.c ... -
java连接池技术
2018-09-04 14:26 412转:https://www.cnblogs.com/xdp-g ... -
java 提取url字符串中的域名
2018-08-30 15:24 7424package com.teamdev.jxbrowser.c ... -
java多线程中锁(lock)、wait、notify()的使用
2018-07-13 11:31 5783package com.kai.多线程间的通信; impor ... -
java多线程间的通信实例
2018-07-13 11:00 1456----线程间的通信 public class ListAd ... -
volatile关键字
2018-07-12 11:20 675volatile:使变量在多个线程间可见 public c ... -
java根据百度url获取真正的网页地址
2018-07-09 11:26 1135/** * 根据百度url,获取原本url * @th ... -
java中的base64字符流与图片的相互转换
2018-06-29 13:27 1301//base64字符串转化成图片 public sta ... -
java去除图片水印的解决办法
2018-06-28 10:54 3397原文地址:http://www.oicqzone.com/pc ... -
java中的中文字符转URLEncode
2018-06-26 11:26 828String urlTypeName =java.net.UR ... -
java下载图片到本地实例
2018-06-25 15:34 1386public static void main(String[ ... -
Myeclipse中如何更改jsp默认的打开方式
2018-05-04 17:44 6871.打开myeclipse 2.点击上方的 window-&g ... -
java三大范式
2018-05-02 09:50 786参考地址:https://www.cnblogs.com/ja ... -
请求中设置代理IP
2018-04-18 16:24 1003(不能直接JVM设置代理 System.getProperti ... -
java获取当前时间的时间戳
2018-04-08 09:25 1534package com.teamdev.jxbrowser.c ... -
java获取IP地址(windos,linux)皆可
2018-03-28 09:44 849package com.teamdev.jxbrowser.c ... -
post 请求
2018-02-05 16:32 560public static void trustEveryo ... -
java robot控制鼠标和键盘(笔记本中打印 i love you)(滑动)
2018-01-25 16:57 2138package robot_java; import jav ... -
java ascii转中文(ascii转utf-8)清测好用
2018-01-24 17:41 3074package com.teamdev.jxbrowser.c ...
相关推荐
简单课程设计学生管理系统,适合初学者 c++ 支持简单功能如下 1.输入学生信息 2.输出所有学生信息 3.增加新的学生信息 4.删除学生信息 5.修改学生信息 6.查询学生信息 7.根据平均分排序输出 0.退出
c904417ef980d9da9eabe32d217623a2.part1
game_patch_1.30.21.13210.pak
Java多线程,线程安全(同步锁、异步锁)
图书管理系统前端静态资源
教育机构绩效管理与绩效考核制度
华为MA5626/MA562空库文件
可以通过这个简易的demo来,锻炼刚开始接触JAVA的朋友们。 首先需要有JAVA开发环境,安装了JDK。 此代码展示了如何设置游戏面板、加载图像资源、初始化游戏状态、处理键盘输入以改变方向、更新游戏状态、检测碰撞和苹果收集等基本功能1。请注意,为了运行这个程序,你需要准备相应的图片资源(dot.png, food.png, head.png),并将其放置在正确的路径下(这里假设是src/resources/目录)。如果你没有这些图片文件,可以使用任何你喜欢的图片代替,或者直接绘制矩形作为替代
"单相Boost PFC电路双闭环控制策略仿真研究:电感电流内环与输出电压双环控制的运行特性及功率因数校正效果展示",单相boost PFC电路仿真 功率因数校正 采用双闭环控制方式 电感电流内环+输出电压双环控制 电路运行特性良好,如效果图所示 ,核心关键词:单相boost PFC电路仿真; 功率因数校正; 双闭环控制方式; 电感电流内环; 输出电压双环控制; 电路运行特性。,"双闭环控制单相Boost PFC电路仿真:电感电流与输出电压协同优化"
改进A星算法:优化路径规划,剔除冗余节点,平滑转折点,对比优化前后结果,改进A星算法 剔除冗余节点,光滑转折点 对比优化前后路径。 ,核心关键词:改进A星算法; 剔除冗余节点; 光滑转折点; 对比优化前后路径。,"优化A星算法:剔除冗余节点,平滑转折点,对比优化路径效果"
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
基于滑膜控制的无人车辆多车道变换轨迹跟踪与路径规划——MATLAB仿真实现,基于滑膜控制无人车辆轨迹跟踪控制 复现滑膜控制 多车道变,MATLAB仿真 路径规划 无人船无人机 SMC控制 Sliding mode controller for trajectory tracking ,基于滑膜控制的无人车辆轨迹跟踪; 复现滑膜控制; 多车道变换; MATLAB仿真; 无人船无人机路径规划; SMC控制; Sliding mode controller。,基于滑膜控制的无人车辆多车道轨迹跟踪控制及仿真研究
基于定子磁链定向矢量控制策略的双馈风力发电系统研究:直接转矩输入与双PWM变换器控制,双馈风力发电系统,双pwm变器控制系统,采用直接转矩输入代替风力发电机。 (1)转子侧采用基于定子磁链定向的矢量控制策略,对d轴进行定向,采用双闭环控制结构,外环为速度环,内环为电流控制环。 (2)网侧采用基于dq解耦直接功率控制,使转子侧以单位功率因数消耗能量,功率因数为1。 (3)右侧加了转子电流过流保护电路(crowbar),并设置了一些参数突变,以便研究了双馈风力发电机在外界干扰下各转矩、功率、电压等波形变化。 附带说明 ,双馈风力发电系统; 双PWM变换器控制; 矢量控制策略; 功率因数1; 转子电流过流保护; 波形变化。,双馈风力发电系统:双PWM变换器直接转矩控制技术研究
2025年小学《义务教育道德与法治课程标准(2022年版)》试卷附含答案.docx
2025年义务教育新课程标准生物(2022年版)必考试题含答案.docx
单相ANPC仿真-逆变器通用-matlab/SIMetrix
数字农场项目建设方案.pptx
python国产进口电影票房榜单数据可视化(可视化大屏)
1.项目简介 基于JavaEE超市管理系统-可用于毕设-课程设计-练手学习。本系统利用网络沟通、计算机信息存储管理,有着与传统的方式所无法替代的优点。比如计算检索速度特别快、可靠性特别高、存储容量特别大、保密性特别好、可保存时间特别长、成本特别低等。 2.项目技术栈 • 数据库:MySQL • 开发工具:IDEA • 数据连接池:Druid • Web容器:Apache Tomcat • 项目管理工具:Maven • 版本控制工具:Git • 后端技术:Servlet+JDBC+Web+JSP • 前端框架:LayUI、HTML、CSS、Jquery 3.项目运行部分截图 4.项目配套万字文档 1.项目简介 根据系统需求与系统功能的分析,可以把系统总体分为:学生信息管理、专业信息管理、课程信息管理、学院信息管理等几大功能模块。每个模块分别定义了多个功能。可用下图的总体功能模块图表示 2.项目技术栈 • 数据库:MySQL • 开发工具:IDEA或Eclipse • 数据连接池:Druid • Web容器:Apache Tomcat •
1、文件内容:acpid-sysvinit-2.0.19-9.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/acpid-sysvinit-2.0.19-9.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装