본문 바로가기

TIL

2022/01/24 TIL

클린 코드 13장 : 동시성

동시성이 어려운 이유?

public class X {
    private int lastIdUsed;

    public int getNextId(){
        return ++lastIdUsed;
    }
}

위의 코드에서 모든 경로를 고려하려면 JIT 컴파일러가 바이트 코드를 처리하는 방식과 자바 메모리 모델이 원자로 간주하는 최소 단위를 알아야 한다. 간단하게 바이트 코드만 고려해도 경로는 약 12,870 개에 달한다.

어떤 레벨에서 경우의 수가 많은지 몰랐었는데 이번기회에 동시성의 경우의 수가 발생하는 부분을 알게 되었다.

스레드 코드 테스트하기

다중 스레드를 고려하지 않는 순차 코드부터 만들기
보조 코드를 넣어 강제로 실패를 일으키게 한다
자동화하기

TDD는 아는것에서 모르는 것으로 이동하며 최대한 많은 오류코드를 보고 이를 자동화하는 과정이다. 스레드 테스트 역시 동일하다는 것을 알게 되었다.

'TIL' 카테고리의 다른 글

2022/01/26 TIL  (0) 2022.01.27
2022/01/25 TIL  (0) 2022.01.25
2022/01/23 TIL  (0) 2022.01.24
2022/01/22 TIL  (0) 2022.01.23
2022/01/21 TIL  (0) 2022.01.22