多线程_线程池的几种类型


1、线程池一个可以装入n个线程的容器,每次池子里面最多能同时运行n个任务(即n个Runnable对象),任务完了,又可以添加新任务,就好像n个线程为m个任务服务

同时能被服务的任务n个.

2、线程池的种类:

  ①固定线程池:

  ②可缓冲线程池

  ③单线程池:

3、定时器线程池定时器类线程池(在普通线程池上面封装而来)


               示例如下

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * @author Administrator @zsw 2012-7-20 下午02:31:35
 */
public class ThreadPoolTest {
	public static void main(String[] args) {
		//1、固定线程池:池子里面只有固定数量的线程
//		ExecutorService threadPool=Executors.newFixedThreadPool(3);
		
		//2、可缓存的线程池:线程池里面的线程数量根据任务数量动态变化
//		ExecutorService threadPool=Executors.newCachedThreadPool();
		
		/*
		 * 3、单线程池:线程池里面只有一个线程,与单线程的区别是,
		 * 这个池子里面的线程死了会自己找一个替补
		 */
		 ExecutorService threadPool=Executors.newSingleThreadExecutor();   
		
		for(int i=1;i<=10;i++){
			final int task=i;
			threadPool.execute(new Runnable(){
				@Override
				public void run() {
					for(int j=1;j<=10;j++){
						System.out.println(Thread.currentThread().getName()+" is loop of "+j+ " for task of "+task);
						/*try {
							Thread.sleep(20);
						} catch (InterruptedException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}*/
					}

				}});
		}
		System.out.println("all of 10 tasks have committed!");
		threadPool.shutdown();//不再添加新任务了,原来的任务干完,就关掉池子
//		threadPool.shutdownNow();//立刻关闭池子,同时停掉了正在执行的任务
	}

}


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

/**
 * @author Administrator @zsw 2012-7-20 下午03:34:11
 */
public class ScheduledThreadPoolTest {
	public static void main(String[] args) {
		// 定时器类线程池(在普通线程池上面封装而来)

		ScheduledExecutorService threadPool = Executors
				.newScheduledThreadPool(3);

		// 1:固定时间后执行一次:5秒后执行一次
		threadPool.schedule(new Runnable() {
			@Override
			public void run() {
				System.out.println("bombing! 一次");

			}
		}, 5, TimeUnit.SECONDS);

		// 2:固定时候后,按照固定频率不停地执行
		threadPool.scheduleAtFixedRate(new Runnable() {
			@Override
			public void run() {
				System.out.println("bombing!不停");

			}
		}, 5, 2, TimeUnit.SECONDS);
		
		threadPool.shutdown();
	}
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 基于JavaWeb数据分析的关键词分析系统源码+项目使用说明.zip 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能。 关键词分析统计使用说明 i. 所用技术 1) Java后台开发 2) 前端UI框架的应用 3) servlet、c3p0连接池、MySQL数据库的应用 4) TextRank4Keyword 自然语言处理关键词提取 5) ThreadPool 线程池 6) jsonp 爬虫 7) Mail IMAP协议 8)pdfbox PDF2String 9)poi 生成excel ii. 实现功能 1) Java爬虫拉取雪球网40万+条公司年报PDF文件数据 2) PDF文件转文本并分析所属公司 3) 指定关键词的类型指标分类统计 4) 统计结果的报表生成 5)向用户发送报表邮件 一、添加关心的公司 在分析前首先要做的工作就是添加需要分析统计的公司: 1. 点击**公司管理** 2. 点击**添加公司** 3. 输入公司的行业名称(可为空)、公司名称(可为空)、**股票代码**(不为空)、**股票名称**(不为空) 4. 点击**提交**即可完成添加 公司列表说明: 1. 下拉**分页** 2. 表示**正在加载数据**,如果**数据过多**可能会需要**较长时间** 3. 点击ID等表头可以进行**排序** 4. 从数据中**检索** 5. 点击**编辑**本条记录 6. 点击**启用**分析本条数据 7. 点击删除本条数据 8. 表示本条数据已**被禁用** **注**:**3165**个关心的公司已初始化到数据库 二、上传需分析的pdf文档 1. 点击**上传文档** 2. 选择**文档所属公司(**默认**自动检测**文档所属公司) 3. 是否**自动检测**文档所属公司 4. 点击**选择文档**或将pdf文档**拖**到此区域 1. **取消上传**该文档 2. 点击**开始上传** 3. 点击**继续添加** 三、添加类型指标 1. 关键词管理→类型指标 2. 添加类型指标 3. **点击类型指标名称可以跳转到该类型指标下的关键词管理** 四、添加关键词 1. **关键词列表** 2. 在该类型指标下**添加关键词** 五、添加邮箱信息 ![添加邮箱信息](imgs/11.png) 1. 点击系统管理→系统设置 2. 填写SMTP服务器 3. 服务器邮箱账号 4. 邮箱密码 5. 收件邮箱地址 6. 点击保存 **注**:邮箱信息是在分析结束后,服务会将分析报表以邮件的形式发送到目标邮件地址。以上2、3、4为服务器邮箱配置,5为目标邮箱。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值