随笔分类 -  并发

摘要:接口和抽象类的区别? 重载和重写的区别? 重载,方法名称不变,入参改变,是一个新的方法,增强同一个方法名称的能力范围,比如LoggerFactory中的getLogger()方法,有多个重载方法,都可以通过getLogger拿到日志对象。 重写,类的继承因为开闭原则,不建议重写,主要针对接口,是对一 阅读全文
posted @ 2024-05-21 22:34 好好的一个居士 阅读(2) 评论(0) 推荐(0) 编辑
摘要:不扯概念,直接看代码: 以可重入锁ReentrantLock的lock()方法切入 Sync是ReentrantLock的一个抽象的静态内部类,同时继承了AbstractQueuedSynchronizer也就是我们常说的AQS,同步队列,源码上的解释太长了,这个抽象类的作用,就是维护一个双向链表, 阅读全文
posted @ 2021-05-08 21:16 好好的一个居士 阅读(77) 评论(0) 推荐(0) 编辑
摘要:volatile:解决多线程场景的可见性问题 可见性问题:多线程的情况下,对于共享变量的读取,不一定是最新的值,就是可见性的问题 场景:多核cpu中,每个内核存在自己的高速缓存,线程的读取都是先从高速缓存中直接读取,读取不到才去内存中读取,优化了io开销过大,提升服务器性能,这是cpu的内存模型设计 阅读全文
posted @ 2021-05-05 13:48 好好的一个居士 阅读(74) 评论(0) 推荐(0) 编辑
摘要:synchronized:互斥锁,本质是通过锁定共享资源,达到线程安全的手段 根据使用方式,分为类锁和对象锁 修饰在静态方法,或者参数为class类的时候,都是以当前类作为共享资源进行锁定,为类锁,粒度最大。 修饰在实例方法,或者参数为指定对象实例的时候,已指定实例为共享资源进行锁定,为对象锁 锁的 阅读全文
posted @ 2021-05-04 17:53 好好的一个居士 阅读(651) 评论(0) 推荐(0) 编辑
摘要:线程的基本概念: 线程可以理解成一个轻量的进程,是cup的最小执行单元,所以线程的创建,是操作系统os实现的,java虚拟机只是调用,这一点和数据库的事务一样。 并发和并行 并发,就是日常提到的高并发,指Server可以同时接收多个请求 并行,一个单核cpu也是可以通过资源切换达到并发,但是始终只有 阅读全文
posted @ 2021-05-04 14:43 好好的一个居士 阅读(63) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示