Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 챠트그리기
- 리플렉션성능
- line챠트
- Iperf3
- snoflake
- go리플렉션성능
- GO부하테스트
- Golangbenchmark
- GObenchmark
- 디자인패컨
- Golang부하테스트
- 대역폭측정하기
- GO벤치마킹
- golang벤치마크
- go로드맵
- pprof
- Go벤치마크
- Line차트
- 디자인패턴학습필요성
- Go디자인패턴
- vue3 통신
- Golang벤치마킹
- golang uuid
- vue3 axios
- vue3
- Golang성능테스트
- Golang디자인패턴
- vue3-chartjs
- Vue.js
- Go성능테스트
Archives
- Today
- Total
목록CAS (1)
import ( "코딩", "행복", "즐거움" )

CAS?? 멀티스레딩 환경에서 동기화를 달성하기 위한 원자적 명령이다. 정의는 위와 같고, 동작적인 측면에서는 현재의 값과 비교값을 일치하는 경우 새로운 값으로 교체 하고, 다른 경우에는 지속적으로 재시도를 하는 특징을 가진다. CAS를 이해하려면 원자성에 대해 알아야 한다 원자성 이해 아래 코드 한줄을 보자. a++; 디스 어셈블리로 확인 하면 실제 코드는 한줄이 아니다. 1) a 변수 주소의 값을 레지스터로 복사 2) 증가 3) 다시 변수로 값 복사 3회 의 처리 과정이 필요하다. 이런 코드들은 멀티 스레드 환경에 노출되면 동기화 문제가 발생하기 때문에 lock 처리를 한다. lock 처리를 한다고 해서 3회의 처리과정이 1회로 바뀌는 것은 아니라 스레드 접근을 제어 하기 때문에 문제가 없어진다. l..
C++
2022. 10. 7. 17:49