자바의 원자 연산은 무엇인가요?

13은 가능하고 24는 불가능하지만, 위쪽의 의미는 그렇지 않습니다. 원자 연산은 멀티스레딩의 맥락에서 볼 수 있습니다.

먼저 원자 연산이 무엇인지 알아야 합니다. 제가 알기로는 멀티스레드 원자 연산에 부합하는 연산을 원자 연산이라고 합니다.

원자는 세상에서 가장 작은 단위이며 분할할 수 없습니다. 예를 들어 a = 0; (A는 길이와 이중 유형이 아님) 이 연산이 분할 불가능하다면 이 연산을 원자 연산이라고 합니다. 또 다른 예:a++; +; 이 연산은 실제로는 a = a+1;

분리가 가능하므로 원자 연산이 아닙니다.

예를 들어, a = 1 연산을 수행하는 데는 문제가 없지만 a = b를 수행하는 데는 큰 문제가 있습니다.

그 순간 다른 스레드가 b의 값을 변경하면 a = b의 값을 확신할 수 없기 때문에 다른 결과가 나오게 됩니다.

예를 들어, 처음 예상한 값이 a = b이고 B의 값이 3이라고 생각하면 A도 3이지만 멀티스레딩의 경우 프로그램은 B를 만듭니다.

4가 되면 A는 4가 되고, 이것은 원자 연산이 아닙니다.