千峰JAVA逆战班Day41

Day41

*数据库连接池

​ I. 概念:数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个

​ II. 主流的连接池:druid 连接池,是阿里的一个开源项目,功能全面,监控,日志分析做的非常好;hikaricp 性能强劲,稳定性也很好,springboot的默认连接池就是它。

​ III. java中的DataSource接口:所有的连接池都要事先DataSource接口;

​ IV. 如何使用连接池

​ 1)导入jar包;
在这里插入图片描述

​ 2)配置好properties配置文件
在这里插入图片描述

​ 3)代码实现

//·连接池对象
static DataSource dataSource;
	
	static {
		
		try {
			InputStream is = DBUtilDataSource.class.getClassLoader().getResourceAsStream("druid.properties");
			Properties p = new Properties();
			p.load(is);
			dataSource = DruidDataSourceFactory.createDataSource(p);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	//·获取连接
	public static Connection getConnection() {
		try {
			return dataSource.getConnection();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}
*线程池(填坑,以前没讲)

​ I. CacheThreadPool:缓存线程池,里面的线程数量0-21E个线程都可以

public class TestCacheThreadPool {
	public static void main(String[] args) {
		System.out.println("main方法开始");
		//根据你的任务,来自动创建线程,自动销毁线程
		//如果60s没有新的任务加进来,会自动关闭
		ExecutorService es = Executors.newCachedThreadPool();	
		//不是有多少任务就有多少线程;  灵活变化的
		for(int i = 0 ; i < 20 ; i++) {
			MyTask mt = new MyTask();
			es.execute(mt);	
		}
		System.out.println("main方法结束");
	}
}
//打印当前线程的姓名,和任务内容
class MyTask implements Runnable{
	@Override
	public void run() {
		System.out.println(Thread.currentThread().getName() + " : 哈哈哈" );
	}
}

​ II. FixedThreadPool:定长线程池,给定长度之后,不管请求多少个线程都只有给定的个数

//创建了一个定长的线程池,长度为5,
ExecutorService es = Executors.newFixedThreadPool(5);
for(int i = 0 ; i < 10 ; i++) {
	MyTask mt1 = new MyTask();
    es.execute(mt1);
}
es.shutdown(); //完成线程池里面所有线程的任务以后,结束这个线程池

​ III. SingleThreadExecutor:就像一个长度为1的定长线程池,如果需要多个线程则会排队

ExecutorService es=Executors.newSingleThreadExecutor();		
for(int i = 0 ; i < 20 ; i++) {
	MyTask mt = new MyTask();		
	es.execute(mt);	//·从打印结果可以看到,从头到尾都只有一个线程
}
System.out.println("main方法结束");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值