Skip to content

Commit b98b5c6

Browse files
author
2293736867
committed
multi-thread/2020最新Java并发进阶常见面试题总结 排版修正
1 parent 19b31d4 commit b98b5c6

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

docs/java/multi-thread/2020最新Java并发进阶常见面试题总结.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ JDK1.6 对锁的实现引入了大量的优化,如偏向锁、轻量级锁、
293293

294294
`synchronized` 关键字和 `volatile` 关键字是两个互补的存在,而不是对立的存在!
295295

296-
- **`volatile` 关键字**是线程同步的**轻量级实现**,所以 **`volatile `性能肯定比` synchronized `关键字要好** 。但是 **`volatile` 关键字只能用于变量而 `synchronized` 关键字可以修饰方法以及代码块 **
296+
- **`volatile` 关键字**是线程同步的**轻量级实现**,所以 **`volatile `性能肯定比` synchronized `关键字要好** 。但是 **`volatile` 关键字只能用于变量而 `synchronized` 关键字可以修饰方法以及代码块**
297297
- **`volatile` 关键字能保证数据的可见性,但不能保证数据的原子性。`synchronized` 关键字两者都能保证。**
298298
- **`volatile`关键字主要用于解决变量在多个线程之间的可见性,而 `synchronized` 关键字解决的是多个线程之间访问资源的同步性。**
299299

@@ -618,8 +618,9 @@ public ThreadPoolExecutor(int corePoolSize,
618618

619619
如果当前同时运行的线程数量达到最大线程数量并且队列也已经被放满了任时,`ThreadPoolTaskExecutor` 定义一些策略:
620620

621-
- **`ThreadPoolExecutor.AbortPolicy`**抛出 `RejectedExecutionException`来拒绝新任务的处理。
622-
- **`ThreadPoolExecutor.CallerRunsPolicy`**调用执行自己的线程运行任务,也就是直接在调用`execute`方法的线程中运行(`run`)被拒绝的任务,如果执行程序已关闭,则会丢弃该任务。因此这种策略会降低对于新任务提交速度,影响程序的整体性能。如果您的应用程序可以承受此延迟并且你要求任何一个任务请求都要被执行的话,你可以选择这个策略。
621+
- **`ThreadPoolExecutor.AbortPolicy`** 抛出 `RejectedExecutionException`来拒绝新任务的处理。
622+
- **`ThreadPoolExecutor.CallerRunsPolicy`**
623+
调用执行自己的线程运行任务,也就是直接在调用`execute`方法的线程中运行(`run`)被拒绝的任务,如果执行程序已关闭,则会丢弃该任务。因此这种策略会降低对于新任务提交速度,影响程序的整体性能。如果您的应用程序可以承受此延迟并且你要求任何一个任务请求都要被执行的话,你可以选择这个策略。
623624
- **`ThreadPoolExecutor.DiscardPolicy`** 不处理新任务,直接丢弃掉。
624625
- **`ThreadPoolExecutor.DiscardOldestPolicy`** 此策略将丢弃最早的未处理的任务请求。
625626

@@ -953,7 +954,7 @@ private volatile int state;//共享变量,使用volatile修饰保证线程可
953954
protected final int getState() {
954955
return state;
955956
}
956-
// 设置同步状态的值
957+
//设置同步状态的值
957958
protected final void setState(int newState) {
958959
state = newState;
959960
}

0 commit comments

Comments
 (0)