随笔分类 -  多线程

摘要:码农在囧途 生活是一个洗礼自己的过程,这个洗礼并不是传统意义上的洗礼,传统意义上的洗礼通常认为这个人的思想得到洗礼,灵魂得到洗礼,十分的清新脱俗,不世故,不圆滑,而现实的洗礼实则是让一个人褪去幼稚,褪去无知,让你变得点头哈腰,圆滑世故,我们都是动物,需要物质满足,更需要欲望填补,所以,变成自己小时候 阅读全文
posted @ 2022-03-26 20:19 苏格拉的底牌 阅读(845) 评论(0) 推荐(0) 编辑
摘要:加锁和释放锁的原理 当方法执行完后或者抛出异常后,都会释放锁 method1等价于method2,因为method1执行完以后会自动释放锁,而么method2使用lock.unlock()释放锁 反编译看monitor指令 被 synchronized 关键字修饰的方法、代码块,就是 monitor 阅读全文
posted @ 2019-04-04 23:20 苏格拉的底牌 阅读(2790) 评论(1) 推荐(0) 编辑
摘要:Synchronized可重入性质 * 什么是可重入:指的是同一线程的外层函数获得锁之后,内层函数可以直接再次获取该锁,而不是释放当前的锁去重新获取一个锁,这是它的一个优点 * 好处:避免死锁,提升封装性 * 粒度:是线程范围而非调用范围 情况一:同一个方法是可以重入的 情况二:不同方法是可以重入的 阅读全文
posted @ 2019-04-04 20:57 苏格拉的底牌 阅读(242) 评论(0) 推荐(0) 编辑
摘要:1. 2. 3 4.同时访问同步方法和非同步方法 synchronized只作用于用它修饰的方法,没有加synchronized 的方法不会受到影响, 如图可以看出加了synchronized修饰符的方法和没有加的方法是同步执行的,也就是说互不影响 5.同时访问一个类的普通同步方法 对于同一个实例来 阅读全文
posted @ 2019-04-04 19:44 苏格拉的底牌 阅读(1070) 评论(0) 推荐(0) 编辑
摘要:作用:能够保证在同一时刻最多有一个线程执行该段代码,以保证并发的安全性。(当第一个线程去执行该段代码的时候就拿到锁,并独占这把锁,当方法执行结束或者一定条件后它才释放这把锁,在没释放锁之前,所有的线程处于等待状态) 不控制高并发的后果: 预期值本来是20000,但是没有控制并发,所以结果不一样 原因 阅读全文
posted @ 2019-04-04 17:38 苏格拉的底牌 阅读(178) 评论(0) 推荐(0) 编辑
摘要:Java中如何正确停止线程? 不能用stop(), 应该使用退出标志(正确退出线程) interrupt():中断线程,并不能正确停止线程 volatile保证了线程可以正确的读取其他线程写入的值。 常用的方法 yield();使用此方法,当执行到它的时候,当前线程就会释放对cpu的执行权,但是下一 阅读全文
posted @ 2019-03-18 23:21 苏格拉的底牌 阅读(199) 评论(0) 推荐(0) 编辑

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