viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73dec87fa11d0283123a3619b5f9530e1a1316068e0daca0ec91e4a8e93c95ee77ee1d4a827929a15a99ec83f1be3392d03818b6965fd798611e919299a36e1b4cb54ced4b92b7a19be5ade5a

Java 설계자가 비동기 메서드의 사용보단 그냥 더 쉽게 읽는것에 초점을 두고 코드 작성에 힘을 써서 그럼

고슬링이 CompletableFuture를 써서 비동기 프로그래밍을 하면 3가지 주요 문제가 발생한다함

비동기 메소드는 호출 결과에 대한 분기, 루핑이 불가능해짐.

그래서 스택 트레이스 오류 원인 식별하는데 사용하기 어렵다는 것이고

프로파일링 불가능해지는게 문제.

그리고 비동기 호출하는 메소드도 비동기식어여야하고,
한마디로 동기와 비동기 어거지로 혼합되면 안된다는 얘기.

근데 그거를 async/await을 쓰게 되면 첫번째는 해결이 가능함.
두번쨰는 부분적으로만 가능하고 세번째는 절대 불가함.


결국 비동기 프로그래밍을 하려는 이유가 쓰레드를 쓸때의 비용이 비싸기 때문임.

그래서 자바 앞으로의 패치 목적도 쓰레드를 경량화 시켜서 더 최적화된 쓰레드 제공하는게 목표라더라

즉 자바 상위 버전 아무리 기대해봐야 방향성이 다른 언어와 다르다는 이 말씀이여


비동기 존나 때리고싶으면 노드 Type로 슈퍼 코딩하던가,

닷넷 코어 C#으로 존나 개발 때리셈.


타스크니 뭐니 까불지말고 자바는 제작자 방향성과 일치시켜서 쓰셈.

그래야 언어를 가장 효과적으로 쓸수있다.