(부호없는) 정수 카운터를 구현하는 코드를 작성했습니다.원자 단위 증가 및 비교 및 교체 연산으로 정수 오버플로를 처리하는 방법은 무엇입니까?
- 임의의 수의 스레드에서 사용됩니다.
- 스레드는 오버플로가 발생할 때까지 항상 고유 한 값을 가져야합니다.
- 정수 유형 범위가 오버 플로우 된 경우 0을 반환해야합니다.
- 내 처분에 원자 증가 함수 (이전 값 반환) 및 원자 비교 및 교체 함수가 있습니다.
모든 시나리오 나는 오버플로에 대한 경쟁 조건으로 인해 어려움을 겪고 있습니다. 이러한 제약 조건으로 카운터를 구현할 수 있습니까?
사용 cas 값이 최대 값에 도달했다면 cas 앞에서 확인할 수 있습니다. "long long"과 64 bit cas을 사용하십시오. – bestsss