Java/병렬성

·Java/병렬성
사실 원래 주제는 CompletableFuture 였는데 Future 의 get( ) 과 CompletableFuture 의 get( ) 을 각각 돌려보면서 정말 신기한 점을 발견해서 주제를 바꾸게 되었다. 간단히 요약하면 Future.get( ) 과 Completable.get( ) 은 완전히 다르다!!! 일단 차근차근 비동기가 무엇인지부터 시작하자 비동기 처리멀티 스레드 상황에서 스레드들은 각자의 코드를 각자의 페이스대로 수행한다. 특정 시점에서 어떤 스레드가 먼저 실행되는지는 알 수 없으며 공유자원에 대한 문제가 생길 수 있다. 공유자원에 대한 안전성을 제공하기 위해 임계영역에 대한 처리를 하다보면 비효율적인 처리가 생길 수 있다. 예를 들어, 임계 영역에 오랜 시간이 걸리는 작업이 있고, 다른 스..