- 浏览: 377001 次
- 性别:
- 来自: 四川
文章分类
- 全部博客 (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 721Java多态 例1.1+1=2 例2."1&quo ... -
经纬度转换
2018-09-25 13:57 0package com.teamdev.jxbrowser.c ... -
java连接池技术
2018-09-04 14:26 401转:https://www.cnblogs.com/xdp-g ... -
java 提取url字符串中的域名
2018-08-30 15:24 7408package com.teamdev.jxbrowser.c ... -
java多线程中锁(lock)、wait、notify()的使用
2018-07-13 11:31 5769package com.kai.多线程间的通信; impor ... -
java多线程间的通信实例
2018-07-13 11:00 1444----线程间的通信 public class ListAd ... -
volatile关键字
2018-07-12 11:20 663volatile:使变量在多个线程间可见 public c ... -
java根据百度url获取真正的网页地址
2018-07-09 11:26 1113/** * 根据百度url,获取原本url * @th ... -
java中的base64字符流与图片的相互转换
2018-06-29 13:27 1288//base64字符串转化成图片 public sta ... -
java去除图片水印的解决办法
2018-06-28 10:54 3381原文地址:http://www.oicqzone.com/pc ... -
java中的中文字符转URLEncode
2018-06-26 11:26 814String urlTypeName =java.net.UR ... -
java下载图片到本地实例
2018-06-25 15:34 1372public static void main(String[ ... -
Myeclipse中如何更改jsp默认的打开方式
2018-05-04 17:44 6751.打开myeclipse 2.点击上方的 window-&g ... -
java三大范式
2018-05-02 09:50 777参考地址:https://www.cnblogs.com/ja ... -
请求中设置代理IP
2018-04-18 16:24 991(不能直接JVM设置代理 System.getProperti ... -
java获取当前时间的时间戳
2018-04-08 09:25 1520package com.teamdev.jxbrowser.c ... -
java获取IP地址(windos,linux)皆可
2018-03-28 09:44 829package com.teamdev.jxbrowser.c ... -
post 请求
2018-02-05 16:32 546public static void trustEveryo ... -
java robot控制鼠标和键盘(笔记本中打印 i love you)(滑动)
2018-01-25 16:57 2121package robot_java; import jav ... -
java ascii转中文(ascii转utf-8)清测好用
2018-01-24 17:41 3054package com.teamdev.jxbrowser.c ...
相关推荐
简单课程设计学生管理系统,适合初学者 c++ 支持简单功能如下 1.输入学生信息 2.输出所有学生信息 3.增加新的学生信息 4.删除学生信息 5.修改学生信息 6.查询学生信息 7.根据平均分排序输出 0.退出
zip里包含源码+论文+PPT,有java环境就可以运行起来 ,功能说明: 文档开篇阐述了随着计算机技术、通信技术和网络技术的快速发展,智慧社区门户网站的建设成为了可能,并被视为21世纪信息产业的主要发展方向之一 强调了网络信息管理技术、数字化处理技术和数字式信息资源建设在国际竞争中的重要性。 指出了智慧社区门户网站系统的编程语言为Java,数据库为MYSQL,并实现了新闻资讯、社区共享、在线影院等功能。 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。
【资源说明】 基于深度强化学习的德州扑克AI算法优化详细文档+全部资料+源码.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
无需安装MobaXterm简约版本,远程工具
这个脚本包含了常见的算法和编程概念,适合蓝桥杯Python组的初级到中级选手练习。通过这些练习,选手可以: 理解递归算法(如斐波那契数列和汉诺塔问题)。 熟悉基本数据结构和操作(如字符串操作、列表处理)。 学习基本的数学算法(如求最大公约数)。 掌握Python语言的基本语法和内置函数的使用。 比赛中可能会遇到更复杂的问题,但这些练习能帮助你打下坚实的基础。在准备蓝桥杯时,还应该关注算法题库,学习更多数据结构(如栈、队列、树、图等)、算法(如动态规划、贪心算法、搜索算法等),并进行大量的代码实践和调试。
zip里包含源码+论文+PPT,有java环境就可以运行起来 ,功能说明: 文档开篇阐述了随着计算机技术、通信技术和网络技术的快速发展,智慧社区门户网站的建设成为了可能,并被视为21世纪信息产业的主要发展方向之一 强调了网络信息管理技术、数字化处理技术和数字式信息资源建设在国际竞争中的重要性。 指出了智慧社区门户网站系统的编程语言为Java,数据库为MYSQL,并实现了新闻资讯、社区共享、在线影院等功能。 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
有java环境就可以运行起来 ,zip里包含源码+论文+PPT, 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上
2024级涉外护理7班马天爱劳动实践总结1.docx
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
LookupError
四川采矿场领导带班下井管理制度
内容概要:本文介绍了基于马尔可夫转移场(MTF)、卷积神经网络(CNN)和多头注意力机制的多特征数据分类预测模型。项目旨在处理多维度、多变量、复杂时序数据,通过融合这三种技术,有效提取时序数据中的非线性模式和长期依赖性,提升分类预测的准确性。文章详细描述了模型的构建、训练、评估和实际应用,包括数据预处理、模型架构设计、代码实现、系统架构设计、模型优化和部署等内容。 适合人群:具备一定编程基础,对深度学习和时间序列分析感兴趣的科研人员和工程师。 使用场景及目标:适用于金融预测、气象分析、智能制造、医疗健康等多个领域的多特征数据分类和预测任务。具体目标包括:提升多特征数据分类的精度,增强多维度数据处理能力,解决传统方法在大规模数据处理中的瓶颈,提供应用和实践价值。 其他说明:项目提供了一个完整的开发流程和详细的代码实现,适合用于学习和实际应用。
【资源说明】 基于wepy 商城(微店)微信小程序 全部资料+详细文档+源码+高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
深圳建设工程公司档案管理规定
【资源说明】 基于CNN算法的验证码识别系统资料齐全+高分项目+文档+源码.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
Python高分毕设——Python&Opencv手势识别系统(完整源码&自定义UI操作界面&视频教程) Python高分毕设——Python&Opencv手势识别系统(完整源码&自定义UI操作界面&视频教程) 使用了OpenCV的视频采集, 图像色域转换, 颜色通道分割, 高斯滤波, OSTU自动阈值, 凸点检测, 边缘检测, 余弦定理计算手势等功能. 准备工作 安装 Python-OpenCV 库 pip install opencv-python -i https://mirrors.ustc.edu.cn/pypi/web/simple 利用 -i 为pip指令镜像源, 这里使用电子科技大学的源, 速度比官方源更快. 安装 Numpy 科学计算库 pip install numpy -i https://mirrors.ustc.edu.cn/pypi/web/simple 安装 PyAutogui 库 pip install pyautogui -i https://mirrors.ustc.edu.cn/pypi/web/simple 代码实现 import nu
本资源深入介绍了使用C++语言实现的多边形有效边表填充算法,这是一种在计算机图形学中用于高效填充多边形内部像素的算法。资源内容包括算法的理论基础、详细的C++代码实现、以及算法的优化技巧。通过实际的代码示例,用户可以直观地理解算法的工作原理,并在自己的项目中实现这一算法。 适用人群: C++开发者和编程爱好者 计算机图形学和数字图像处理领域的研究人员 需要在项目中实现多边形填充功能的工程师 计算机科学与技术相关专业的学生 使用场景及目标: 学习:作为学习材料,帮助用户掌握C++编程和计算机图形学的基础知识。 实践:为用户提供可直接使用的C++代码模板,用于多边形填充的实际应用。 优化:帮助用户理解算法的优化点,提升图形渲染性能。 其他说明: 资源中包含了算法的详细注释,解释了代码中的关键部分,便于用户理解和学习。 提供了算法性能分析,包括时间复杂度和空间复杂度的讨论,帮助用户评估算法效率。 包含了常见问题的解决方案和代码调试技巧,帮助用户解决实际编程中可能遇到的问题。 适合需要在C++项目中实现多边形填充功能的场景,如游戏开发、图形界面设计等。
图书管理系统作为示例,这个系统将包括以下功能: 功能要求 用户管理:注册、登录、查看用户信息。 图书管理:添加、删除、修改、查询图书信息。 借书和还书:用户可以借阅图书并记录借书信息。 查询功能:按书名、作者、ISBN查询图书。 日志记录:记录系统中的所有操作。 使用技术 Python:作为主要编程语言。 Flask:一个轻量级的Web框架。 SQLite:作为数据库来存储用户和图书信息。 SQLAlchemy:ORM工具,简化数据库操作。 Flask-Login:用于管理用户会话。 Flask-WTF:处理表单。 Bcrypt:密码哈希处理。 数据库设计 Users Table: id, username, password, email Books Table: id, title, author, isbn, quantity Borrow Table: id, user_id, book_id, borrowed_date, return_date 扩展需求 安全控制: 所有用户数据加密存储。 使用HTTPS来加密传输的数据。 实现角色和权限控制,管理员可以管理图书和用户,普