Java:线程池

本文深入探讨Java并发中的volatile和synchronized如何确保内存可见性,以及线程池的工作原理和优势。介绍了数据库连接池和线程池作为资源复用的实例,并对比了乐观锁和悲观锁的使用场景。了解这些概念有助于提升Java应用的性能和效率。
摘要由CSDN通过智能技术生成

Java规范明确表示:yeld和sleep不一定会强制刷新工作内存读取主存

保证100%可见性: volatile,synchronized,final(在定义时就要赋值且无法修改)

线程池 

     **池: 目的就是让某些对象得到重复利用,减少频繁创建和销毁对象带来的开销问题(这些对象可以重复利用).

      数据库连接池: 创建和销毁数据库的连接池就是一个比较耗时的操作,每当一个连接调用close方法终止后,表示用户不在使用此连接,就回收连接到连接池中(同一个连接可以被用户使用多次,减少了创建连接和销毁连接的系统开销).

      线程池:  内部创建好了若干个线程,这些线程都是runnable,只需要从系统中取出任务(run),就可以立即执行,线程池最大的好处就是减少每次启动和销毁线程的损耗.

JDK线程池的使用 

 

 

 

线程池的工作流程 

 

常见锁策略 

   乐观锁和悲观锁

   乐观锁: 每次读写数据认为不会发生冲突,线程不会阻塞,只有在线程更新时才会检查是否发生冲突,若没有冲突,直接跟新,只有冲突才解决冲突问题,当冲突不严重的时候可以采用乐观锁策略来避免加锁解锁操作

   悲观锁: 每次去读写数据都会冲突,每次在数据读写时都会上锁(互斥),保证同一时间段只有一个线程在读写数据

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值