![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发编程学习笔记
大青儿
这个作者很懒,什么都没留下…
展开
-
java并发编程笔记5----使用IDEA的Terminal工具排查死锁
这是我学习java并发编程做的笔记,附上原课程B站地址:全面深入学习java并发编程,中级程序员进阶必会 1.简单的死锁程序 t1线程锁住A对象后申请B对象的锁,t2线程锁住B对象后申请A对象锁,产生矛盾,导致死锁。 /** *死锁的演示与排查 * * */ @Slf4j(topic = "c.Test2") public class Test2 { private static final Object A = new Object(); private static final原创 2020-07-02 22:07:36 · 986 阅读 · 0 评论 -
java并发编程笔记3----详解线程八锁
原课程B站地址:全面深入学习java并发编程,中级程序员进阶必会 基础概念 临界区:一段代码块内如果对共享资源的多线程读写操作,称这段代码块为临界区 竞态条件:多个线程在临界区内执行,由于代码的执行序列不同而导致结果无法预测,称之为发生了竞态条件 为了避免临界区内竞态条件发生,有两种主要手段,阻塞式(采用synchronized,lock)和非阻塞式(原子变量) 而此篇介绍的线程八锁指的是使用sy...原创 2020-04-20 23:21:16 · 617 阅读 · 0 评论 -
java并发编程笔记2----启动线程为什么用start()方法而不是run()方法
原课程B站地址:全面深入学习java并发编程,中级程序员进阶必会 众所周知,线程运行体运行的代码是重写Thread类的run()方法,而启动线程是使用start()方法,那为什么直接调用run()方法不行呢? 当调用start()方法启动线程的时候 public static void main(String[] args) throws InterruptedException { ...原创 2020-04-19 13:28:32 · 395 阅读 · 0 评论 -
java并发编程笔记1----创建线程的三种方式详解
原课程B站地址:全面深入学习java并发编程,中级程序员进阶必会 java中创建线程有三种方式 第一种 使用new Thread()直接创建 /** * 第一种创建线程方法 * 最基础的创建线程方法 * */ @Slf4j(topic = "c.Test1") public class Test1 { public static void main(String[] args) { ...原创 2020-04-17 20:31:27 · 413 阅读 · 0 评论