专注于快乐的事情

高并发

CLH

CLHCLH(Craig, Landin, and Hagersten)锁,简单的说,它使用队列的方式来解决n个线程来争夺m把锁的问题,每当一个新的线程需要获取锁,为其创建一个节点并放到队尾,如果该线程是队列中的第一个节点,则节点的l...

线程中断

线程中断总结背景有些时候,需要一个线程死掉, 或者让它结束某种等待的状态,该怎么办呢?比较安全的做法是:1.使用等待/通知机制2.给那个线程一个中断信号, 让它自己决定该怎么办 线程中断使用场景: 场景1: 在某个子线程中为了等待一些...

线程池学习

线程池学习schedule、scheduleAtFixedRate和scheduleWithFixedDelay的区别schedule(commod,delay,unit) ,这个方法是说系统启动后,需要等待多久执行,delay是等待...

java并发机制和内存模型总结

术语临界区临界区表示一种公共资源或者共享数据。每一刻只能被一个线程使用,如果临界区资源被占用,其他线程想使用这个资源,就必须等待。 CASCompare and Swap,比较并设置。 用于在硬件层面上提供原子性操作。在Intel 处...

java并发机制和内存模型总结

术语临界区临界区表示一种公共资源或者共享数据。每一刻只能被一个线程使用,如果临界区资源被占用,其他线程想使用这个资源,就必须等待。 CASCompare and Swap,比较并设置。 用于在硬件层面上提供原子性操作。在Intel 处...

多线程并发控制方法

多线程并发控制方法等待多线程完成场景:我们需要解析一个Excel里多个sheet的数据,此时可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要提示解析完成。在这个需求中,要实现主线程等待...

共享锁分析

共享锁代码分析参考代码ReentrantReadWriteLock ReadLock中的sync是一个Sync对象,Sync继承于AQS类,即Sync就是一个锁。ReentrantReadWriteLock中也有一个Sync对象,而且...