线程
小鱼儿^O
待到秋来九月八,我花开后百花杀。
冲天香阵透长安,满城尽带黄金甲。
展开
-
Java中wait和sleep的区别
wait和sleep的区别:1. wait的使用必须配合锁使用,sleep则不用2. wait会释放锁,sleep不会释放锁3. wait之后线程进入WAITING,sleep进入TIMED_WAITING4. wait可以被注定唤醒,sleep只能等待时间结束5. wait是object方法,sleep是thread方法...原创 2021-09-07 18:34:56 · 457 阅读 · 0 评论 -
单个线程池相对于单个线程的优势
单个线程池相对于单个线程的优势:避免反复的创建和消耗线程从而导致系统资源的浪费线程池有任务队列,可以存放多余的任务当有大量的任务不能处理时,可以拒绝任务线程池可以更好的管理任务...原创 2021-09-03 13:23:46 · 368 阅读 · 0 评论 -
锁升级原理
锁升级:JDK1.6之前 重量级锁:用户态->内核态 (消耗太多性能)JDK1.6之后更改无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁当第一个线程第一次访问时 将线程ID放入对象头当多个线程一起竞争 自旋竞争失败进入阻塞队列 等待线程唤醒原创 2021-09-02 16:10:49 · 142 阅读 · 0 评论 -
synchronized和Lock的区别详解
synchronized和Lock的区别:synchronized自助实现加锁和释放锁,Lock则需要手动实现synchronized锁的实现在JVM层依赖minitor监控锁,Lock实现是在JAVA层面synchronized能用于代码块,静态方法,和普通方法,Lock只能用于代码块synchronized锁的模式只有非公平锁,Lock两个都有.Lock的灵活性更高trylock(),粒度更细...原创 2021-09-02 16:05:05 · 159 阅读 · 0 评论 -
两个线程实现AABBCCDD
每个线程只能能输出ABCD,试用连个线程实现AABBCCDD试用公平锁来实现每个字符的输出Lockpublic class TestDemo1 { public static void main(String[] args) { Lock lock = new ReentrantLock(true); Runnable runnable = new Runnable() { @Override public v原创 2021-09-02 15:59:45 · 263 阅读 · 0 评论