노마드코더

 

 

 

😀 책에서 기억하고 싶은 내용을 써보세요.

  • 동기화하는 부분을 작게 만들어라
    • 자바에서 synchronized 키워드를 사용하면 락을 설정한다.
    • 같은 락으로 감싼 모든 코드 영역은 한 번에 한 스레드만 실행이 가능하다.
      => 락은 스레드를 지연시키고 부하를 가중시킨다.
  • 코드가 올바르다고 증명하기는 현실적으로 불가능하다.
    • 테스트가 정확성을 보장하지는 않는다.
      => 그럼에도 충분한 테스트는 위험을 낮춘다.
    • 권장사항: 문제를 노출하는 테스트 케이스를 작성하라.
      프로그램 설정과 시스템 설정과 부하를 바꿔가며 자주 돌려라.
      테스트가 실패하면 원인을 추적하라.
      => 다시 돌렸더니 통과하더라는 이유로 그냥 넘어가면 절대로 안 된다.
      • 말이 안 되는 실패는 잠정적인 스레드 문제로 취급하라.
      • 다중 스레드를 고려하지 않은 순차 코드부터 제대로 돌게 만들자.
      • 다중 스레드를 쓰는 코드 부분을 다양한 환경에 쉽게 끼워 넣을 수 있도록 스레드 코드를 구현하라.
      • 다중 스레드를 쓰는 코드 부분을 상황에 맞춰 조정할 수 있게 작성하라.
      • 프로세서 수보다 많은 스레드를 돌려보라.
      • 다른 플랫폼에서 돌려보라.
      • 코드에 보조 코드(instrument)를 넣어 돌려라. 강제로 실패를 일으키게 해 보라.
  • 처음부터 그리고 자주 모든 목표 플랫폼에서 코드를 돌려라.
  • 스레드 코드를 테스트할 때는 전적으로 스레드만 테스트한다.

 

 

 

 

🤔 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요.

  1. 멀티 스레드를 구현하는 수많은 개발자의 고통이 느껴졌습니다.
    => 아직 구현을 해보지 못해서 모르지만 수 많은 시행착오가 있다고 책에 나와있습니다.
    => 면접에서 스레드 얘기가 나오면 왜이렇게 면접관들이 질문을 할려고 하는지 알 것 같습니다.

 

 

 

🔎 궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요. 

  • 전반적으로 거의 다 이해가 되지 않았습니다.
    => 이전 글에도 적었지만 스레드에대한 개념과 코드를 구현해보지 못한 것 때문에 이해가 힘든 것 같습니다.
    다음에 조금이라도 구현을 해보고 다시 읽으면 좋을것 같은 파트입니다.

 

 

 

👀 소감 3줄 요약

  • 다중 스레드 코드는 올바로 구현하기 어렵다.
  • 다중 스레드를 쓰는 코드를 다양한 설정으로 실행하기 쉽게 구현하라. 
  • 다중 스레드 코드를 작성한다면 각별히 깨끗하게 코드를 짜야한다.

 

 

반응형

+ Recent posts