IDE (인텔리제이)에서는 int a = 10으로 한 줄짜리 코드지만
바이트코드로 보면 두 줄이다
* bipush 10을 스택에 넣고(push) istore_1으로 변수에 저장(store)
멀티 쓰레드할 때 코드는 한 줄인데 사실상은 두 줄이여서 문제가 될 수 있다고 말씀하심
a 쓰레드가 0을 처리하고 b 쓰레드가 2를 처리하고 a가 다시 3을 처리하면 이상한 값이 나올 수 있다.
아직 정확히 이해는 안가지만
지금은 IDE에선 한 줄로 보이는 코드가 실제로는 2~3줄일 수도 있다는 점을 알고 있으면 될 듯하다.
'Java > 스터디' 카테고리의 다른 글
2주차 피드백 참고 (0) | 2021.08.15 |
---|---|
(2주차) 자바 데이터 타입, 변수 그리고 배열 (0) | 2021.08.04 |
1주차 피드백 (0) | 2021.08.04 |
JDK vs JRE (1주차) (0) | 2021.08.01 |
JIT 컴파일 (1주차) (0) | 2021.08.01 |