쓰레드풀에서 최적의 쓰레드 개수를 찾아보자
입사한지 약 1달이 넘어가는 시점에 처음으로 프로덕트 리팩토링이 아닌 업무가 할당되었다.제목에서 유추 가능하듯이 현재 사용중인 쓰레드풀에서 최적의 쓰레드의 개수를 찾는 업무였다. 처음 작업을 시작할 때는 리팩토링이 아니라는 사실만으로도 즐거웠다.하지만 이슈 분석을
입사한지 약 1달이 넘어가는 시점에 처음으로 프로덕트 리팩토링이 아닌 업무가 할당되었다.제목에서 유추 가능하듯이 현재 사용중인 쓰레드풀에서 최적의 쓰레드의 개수를 찾는 업무였다. 처음 작업을 시작할 때는 리팩토링이 아니라는 사실만으로도 즐거웠다.하지만 이슈 분석을
분할 분할은 분할 함수라 불리는 프리디케이트를 분류 함수로 사용하는 특수한 그룹화 기능입니다.분할 함수는 불리언 값을 반환하기 때문에 그룹화된 Map의 Key의 Type은 Boolean입니다.결과적으로 그룹화된 Map의 Key는 True or False만을 가지는 두 개의
지금까지 배운것으로 스트림을 한 마디로 요약하면 데이터 집합을 효율적이고 Lazy하게 처리하는 반복자라고 알 수 있습니다.또한 스트림의 연산들은 filter 또는 map 같은 중간 연산과 count,findFirst,forEach,reduce 등의 최종 연산으로 구분할 수
이번 장에서는 본격적으로 Streamd을 활용하는 방법에 대해 배워보겠습니다. 필터링 스트림 객체는 filter() 메서드를 지원합니다.filter 메서드는 Predicate를 인자로 받아 해당 Predicate와 일치하는 스트림 내부의 요소를 포함하는 스트림 객체를 반환합니다.또 다른 필터링은 지원하는
스트림이란 무엇인가? 스트림은 자바8에서 새롭게 추가된 기능입니다. 스트림을 이용하면 선언형으로 컬렉션 데이터를 처리할 수 있습니다.또한 이를 활용하면 멀티스레드 코드를 구현하지 않아도 병렬 처리가 가능합니다.아래 예제를 통해 스트림을 사용하는 예를 알아봅시다.예제는
앞선 챕터에서 동작 파라미터화를 통해 요구 사항을 효율적으로 반영할 수 있는 코드를 구현해보았습니다.특히 익명 클래스를 활용하여 다양한 동작을 구현했습니다.하지만 이는 람다 표현식에 비하면 코드가 깔끔하지는 않았습니다.이번 장에서는 람다를 활용해 좀
동작 파라미터화 코드 전달하기 책에서 해당 챕터의 서론으로 얘기하는것은 어떻게 시시각각 변하는 사용자 요구 사항에 효율적으로 대응할 수 있을까이다.효율적이다라는 것은 크게 두가지로 나뉜다.우선 엔지니어링적인 비용이 최소인점이고 나머지는 새로 추가할 기능의 구현과
* 커밋 : 내가 현재 작업하고 있는 작업물의 진행상황의 체크포인트라고 비유할 수 있다.다만 이러한 체크포인트에 아래와 같은 메시지를 함께 넣어 쉽게 식별하도록 한다. * 커밋은 사실 다단계로 이루어진 절차이다.git add -> git commit
이번 챕터에서는 특정 파일과 연결된 페이지인 file-backed page를 할당하고 해제하는 mmap과 munmap 시스템 콜을 구현합니다.아마 앞선 챕터를 구현하면 anonymous와 file-backed의 차이점에 대해서는 알게 될것이라고 생각합니다.다만 제가 생각하기에 위 두 가지 종류의
이번 포스팅에서는 project3의 3번째 과제 Stack Growth를 다루겠습니다.기본적으로 이번 챕터의 제목과 같이 Stack 영역에 페이지를 새롭게 할당하는 기능을 구현합니다. 우선 깃북을 따라가며 구현을 해보겠습니다. //vm.c bool vm_try_handle_fault (struct