摘要: # 12 方法上的 synchronized >```java >//普通方法上加synchronized >class Test{ > public synchronized void test() { > > } >} >//等价于 >class Test{ > public void test 阅读全文
posted @ 2023-06-29 23:19 渺阴丶 阅读(22) 评论(0) 推荐(0)
摘要: # 11 临界区与竞态条件 ## 临界区 Critical Section * 一个程序运行多个线程本身是没有问题的 * 问题出在多个线程访问**共享资源** * 多个线程读**共享资源**其实也没有问题 * 在多个线程对**共享资源**读写操作时发生指令交错,就会出现问题 * 一段代码块内如果存在 阅读全文
posted @ 2023-06-29 23:19 渺阴丶 阅读(30) 评论(0) 推荐(0)
摘要: # 10 线程的状态 ## 操作系统层面的线程状态 ![](https://img2023.cnblogs.com/blog/2764805/202306/2764805-20230629231723635-478493066.png) 1. **初始状态** 仅是在语言层面创建了线程对象,还未与操 阅读全文
posted @ 2023-06-29 23:18 渺阴丶 阅读(30) 评论(0) 推荐(0)
摘要: # 9 守护线程 ## 什么是守护线程 默认情况下,Java 进程需要等待所有线程都运行结束,才会结束。有一种特殊的线程叫做守护线程,只要其它非守护线程运行结束了,即使守护线程的代码没有执行完,也会强制结束。 ## 守护线程实例 >```java >import java.util.concurre 阅读全文
posted @ 2023-06-29 23:16 渺阴丶 阅读(17) 评论(0) 推荐(0)
摘要: # 8 Interrpt()和IsInterrupted() ## **interrupt()的效果** 如果被打断线程正在 sleep,wait,join 会导致被打断的线程抛出 InterruptedException,并清除 **打断标记**;如果打断的正在运行的线程,则会设置 **打断标记* 阅读全文
posted @ 2023-06-29 23:16 渺阴丶 阅读(41) 评论(0) 推荐(0)
摘要: # 7 Join方法 ## join方法的作用 假设在主线程中调用子线程的join方法,主线程会在join方法处**等待子线程执行完之后**,再继续进行下去。这个过程也就是一个**同步**的过程。 ## 什么是同步 以调用方角度来讲,如果 ​ **同步:**需要等待结果返回,才能继续运行就是同步 ​ 阅读全文
posted @ 2023-06-29 23:15 渺阴丶 阅读(42) 评论(0) 推荐(0)
摘要: # 6 sleep与yield的比较 ## sleep 1. 调用 sleep 会让当前线程从 *Running* 进入 *Timed Waiting* 状态(阻塞) 2. 其它线程可以使用 interrupt 方法打断正在睡眠的线程,这时 sleep 方法会抛出 InterruptedExcept 阅读全文
posted @ 2023-06-29 23:15 渺阴丶 阅读(61) 评论(0) 推荐(0)