JUC
文章平均质量分 78
Liu风
这个作者很懒,什么都没留下…
展开
-
JDK中的线程池
1.固定的线程池1.1newFixedThreadPool通过ExecutorService pool = Executors.newFixedThreadPool(5)进行创建进入newFixedThreadPool如下图 public static ExecutorService newFixedThreadPool(int nThreads, ThreadFactory threadFactory) { return new ThreadPoolExecutor..原创 2021-12-04 13:32:30 · 131 阅读 · 0 评论 -
偏向锁的几种状态
偏向锁不会主动释放锁1.定义在轻量级的锁中,我们可以发现,如果同一个线程对同一个对象进行重入锁时,也需要执行CAS操作,这是有点耗时滴,那么java6开始引入了偏向锁的东东,只有第一次使用CAS时将对象的Mark Word头设置为入锁线程ID,之后这个入锁线程再进行重入锁时,发现线程ID是自己的,那么就不用再进行CAS了2. 偏向状态2.1一个对象的创建过程 如果开启了偏向锁(默认是开启的),那么对象刚创建之后,Mark Word 最后三位的值101,并且这是它的Th..原创 2021-11-28 19:58:34 · 508 阅读 · 0 评论 -
轻量级锁与重量级锁
一、轻量级锁1、使用场景轻量级锁的使用场景是:如果一个对象虽然有多个线程要对它进行加锁,但是加锁的时间是错开的(也就是没有人可以竞争的),那么可以使用轻量级锁来进行优化。轻量级锁对使用2者是透明的,即语法仍然是synchronized,假设有两个方法同步块,利用同一个对象加锁static final Object obj = new Object();public static void method1() { synchronized( obj ) { //原创 2021-11-28 16:41:02 · 2990 阅读 · 0 评论