![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线程
春风一慕
这个作者很懒,什么都没留下…
展开
-
线程生命周期
原创 2019-06-10 17:28:54 · 78 阅读 · 0 评论 -
Java不可重入锁和可重入锁理解
最近正在阅读Java ReentrantLock源码,始终对可重入和不可重入概念理解不透彻,进行学习后记录在这里。 基础知识 Java多线程的wait()方法和notify()方法 这两个方法是成对出现和使用的,要执行这两个方法,有一个前提就是,当前线程必须获其对象的monitor(俗称“锁”),否则会抛出IllegalMonitorStateException异常,所以这两个方法必须在同步块...转载 2019-06-12 09:32:50 · 97 阅读 · 0 评论 -
【Java并发编程之深入理解】Synchronized的使用
1.为什么要使用synchronized 在并发编程中存在线程安全问题,主要原因有:1.存在共享数据 2.多线程共同操作共享数据。关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchronized可以保证一个线程的变化可见(可见性),即可以代替volatile。 2.实现原理 synchronized可以保证方法或者代码块在运行时,同一时...原创 2019-07-06 20:54:24 · 161 阅读 · 0 评论 -
使用内部类实现线程同步
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1,。使用内部类实现线程,对j增减的时候没有考虑顺序问题。 import java.lang.Thread; public class Outer { private int j=1; public static void main(String args[]) { Outer out = new...原创 2019-07-19 20:43:20 · 219 阅读 · 0 评论