From ef0180f706e5f184d3ae28de2818c72516eaec24 Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Tue, 30 Oct 2018 17:50:41 +0800 Subject: [PATCH] auto commit --- notes/Java 并发.md | 2 +- notes/设计模式.md | 2 +- notes/重构.md | 2 +- pics/77931a4b-72ba-4016-827d-84b9a6845a51.png | Bin 0 -> 30720 bytes 4 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 pics/77931a4b-72ba-4016-827d-84b9a6845a51.png diff --git a/notes/Java 并发.md b/notes/Java 并发.md index 8b26ae91..cc2c28a9 100644 --- a/notes/Java 并发.md +++ b/notes/Java 并发.md @@ -766,7 +766,7 @@ run..run..run..run..run..run..run..run..run..run..end 用来控制多个线程互相等待,只有当多个线程都到达时,这些线程才会继续执行。 -和 CountdownLatch 相似,都是通过维护计数器来实现的。线程执行 await() 方法之后计数器会减 1,并进行等待,直到计数器为 0,所有调用 awati() 方法而在等待的线程才能继续执行。 +和 CountdownLatch 相似,都是通过维护计数器来实现的。线程执行 await() 方法之后计数器会减 1,并进行等待,直到计数器为 0,所有调用 await() 方法而在等待的线程才能继续执行。 CyclicBarrier 和 CountdownLatch 的一个区别是,CyclicBarrier 的计数器通过调用 reset() 方法可以循环使用,所以它才叫做循环屏障。 diff --git a/notes/设计模式.md b/notes/设计模式.md index 6d779e2f..38713e5f 100644 --- a/notes/设计模式.md +++ b/notes/设计模式.md @@ -2578,7 +2578,7 @@ public class Client { 组合对象拥有一个或者多个组件对象,因此组合对象的操作可以委托给组件对象去处理,而组件对象可以是另一个组合对象或者叶子对象。 -

+

### Implementation diff --git a/notes/重构.md b/notes/重构.md index d7e31bf8..e90fa84e 100644 --- a/notes/重构.md +++ b/notes/重构.md @@ -383,7 +383,7 @@ class App { ## 重构与性能 -为了使代码更容易理解,重构可能会导致性能减低。 +为了软代码更容易理解,重构可能会导致性能减低。 在编写代码时,不用对性能过多关注,只有在最后性能优化阶段再考虑性能问题。 diff --git a/pics/77931a4b-72ba-4016-827d-84b9a6845a51.png b/pics/77931a4b-72ba-4016-827d-84b9a6845a51.png new file mode 100644 index 0000000000000000000000000000000000000000..6f8a3c52df2320efdd20161e1918f3a8eeefd8e8 GIT binary patch literal 30720 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