Java/스터디
바이트코드
필리힐리
2021. 8. 15. 14:10
IDE (인텔리제이)에서는 int a = 10으로 한 줄짜리 코드지만
바이트코드로 보면 두 줄이다
* bipush 10을 스택에 넣고(push) istore_1으로 변수에 저장(store)
멀티 쓰레드할 때 코드는 한 줄인데 사실상은 두 줄이여서 문제가 될 수 있다고 말씀하심
a 쓰레드가 0을 처리하고 b 쓰레드가 2를 처리하고 a가 다시 3을 처리하면 이상한 값이 나올 수 있다.
아직 정확히 이해는 안가지만
지금은 IDE에선 한 줄로 보이는 코드가 실제로는 2~3줄일 수도 있다는 점을 알고 있으면 될 듯하다.