We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
동기화 장치란
CountdownLatch
예제 : 동시성을 필요로 하는 프레임워크 구축
시나리오
package effectivejava.chapter11.item81; import java.util.concurrent.*; // Simple framework for timing concurrent execution 327 public class ConcurrentTimer { private ConcurrentTimer() { } // Noninstantiable public static long time(Executor executor, int concurrency, Runnable action) throws InterruptedException { CountDownLatch ready = new CountDownLatch(concurrency); CountDownLatch start = new CountDownLatch(1); CountDownLatch done = new CountDownLatch(concurrency); for (int i = 0; i < concurrency; i++) { executor.execute(() -> { ready.countDown(); // Tell timer we're ready try { start.await(); // Wait till peers are ready action.run(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } finally { done.countDown(); // Tell timer we're done } }); } ready.await(); // Wait for all workers to be ready long startNanos = System.nanoTime(); start.countDown(); // And they're off! done.await(); // Wait for all workers to finish return System.nanoTime() - startNanos; } }
추가적인 사항
레거시 코드라면 어쩔 수 없이 wait와 notify를 다뤄야한다. 새로 작성하는 코드라면 concurrent 패키지의 요소들을 사용하는 것이 좋다.
synchronized (obj) { while(<조건이 충족되지 않았다>) obj.wait(); // 조건이 충족됐을 때의 동작 수행 }
더 안전하게 사용하기
둘의 차이
notifyAll를 사용하는 것이 좋다
notify 최적화
The text was updated successfully, but these errors were encountered:
No branches or pull requests
동기화 장치
동기화 장치란
CountdownLatch
CountdownLatch
예제 : 동시성을 필요로 하는 프레임워크 구축
시나리오
추가적인 사항
wait와 notify 사용 시 주의사항
레거시 코드라면 어쩔 수 없이 wait와 notify를 다뤄야한다. 새로 작성하는 코드라면 concurrent 패키지의 요소들을 사용하는 것이 좋다.
wait의 표준 사용법
더 안전하게 사용하기
조건이 만족되지 않아도 스레드가 깨어날 수 있는 상황
notify vs notifyAll
둘의 차이
notifyAll를 사용하는 것이 좋다
notify 최적화
The text was updated successfully, but these errors were encountered: