Java多线程
文章平均质量分 92
Colourful.
这个作者很懒,什么都没留下…
展开
-
AQS源码(二)之独占锁的释放
文章目录前言ReentrantLock的锁释放前言 Java的内置锁(synchronized)在退出临界区之后是会自动释放锁的,但是ReentrantLock这样的显示锁是需要自己显示的释放的,所以在加锁之后一定不要忘记在finally块中进行显示的锁释放:Lock lock = new ReentrantLock();lock.lock();try{ ...}catch(..){ ..}fin原创 2021-06-12 10:32:18 · 282 阅读 · 1 评论 -
AQS源码(一)之独占锁的获取
文章目录前言Java并发工具类的三板斧AQS核心AQS核心属性FairSync in ReentrantLockacquiretryAcquire()addWaiteracquireQueuedshowParkAfterFailedAcquire()parkAndCheckInterrupt()总结前言 AQS(AbstractQueuedSynchronizer)是Java中众多锁以及并发工具的基础,其底层采原创 2021-06-06 20:21:11 · 109 阅读 · 0 评论 -
Java锁之偏向级锁、轻量级锁、重量级锁
文章目录什么是偏向级锁、轻量锁、重量级锁偏向级锁轻量级锁重量级锁什么是偏向级锁、轻量锁、重量级锁 首先,我们需要明确一点:这三种锁只针对synchronized 我们都知道,任意一个java对象都可以做为锁,java对象的锁信息存储在对象头中的Mark Word字段中。Mark Word里默认存储对象的HashCo原创 2021-05-21 11:49:44 · 4666 阅读 · 5 评论 -
Java锁之乐观锁、悲观锁(包括CAS操作、synchronized底层实现原理)
文章目录锁分类乐观锁 / 悲观锁乐观锁的实现:CAS(Compare and Swap)操作CAS存在的问题ABA问题解决方案独享锁 / 共享锁互斥锁 / 读写锁可重入锁公平锁 / 非公平锁分段锁偏向锁 / 轻量级锁 / 重量级锁锁分类 Java中对锁的分类有如下几种:  原创 2021-05-20 18:35:17 · 623 阅读 · 1 评论 -
线程间的同步与通信
文章目录线程间通信的方法锁池与等待池notify()、notifyAll()区别三个线程轮流打印ABC线程间通信的方法 在Java中,我们可以使用 &原创 2021-05-15 20:41:00 · 436 阅读 · 0 评论 -
浅谈线程中断
文章目录概述中断原理如何响应中断?总结概述 在多线程中,如果我们由于一些特殊的原因,想让已经进入阻塞的线程提前解除阻塞,进而进行执行后面的代码,那么线程中断这个方法,会让我们很轻松的达到这个目的。中断原理 Java 中断机制是一种协作机制,也就是说通过中断并不能直接终止另一个线程,而需要被中断的线程自己处理中断。原创 2021-05-13 20:59:46 · 246 阅读 · 0 评论 -
线程状态及常用方法
文章目录线程状态常用方法线程状态 Java中线程的状态有五种,分别为: ① 新建(NEW):新创建出来的线程且还没有调用start()时处于新建状态原创 2021-05-07 15:10:00 · 404 阅读 · 0 评论 -
如何创建和启动线程
文章目录Runnable接口线程创建Thread的构造函数启动线程实战创建线程的方式一:继承Thread类创建线程的方式二:实现Runnable接口总结Runnable接口我们看Thread类的定义知道,Thread类实现了Runnable接口Runnable接口的定义如下:它只有一个抽象方法run。说明需要其实现类重写这个run方法,而run()之间的内容,就是我们期望这个线程该干什么。同时Runnable接口还被@FunctionalInterface注解标注,说明它是一个函数式接口。这意味着原创 2021-05-07 10:59:33 · 951 阅读 · 0 评论