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
- memorymangement
- 포지션 파라미터
- flutter folder
- named parameter
- 싱글톤
- 유니티
- unity 아이콘 깨짐
- 플러터폴더
- unity icon
- C# memorybarrior
- optional prameter
- Unity 4k 아이콘 깨짐
- position parameter
- 폴더구성
- Unity
- 플러터
- 다트기초
- XR
- MemoryBarrier
- 메모리배리어
- Unity3d
- 네임드 파라미터
- 4KUnity
- Csharp
- c#
- OPCUA
- 유니티최적화
- 플러터프로젝트
- xml unity
- Flutter
Archives
- Today
- Total
배 타다 개발자
[메모리 배리어] 코드 재배치와 가시성을 확보 할 수 있다. 본문
메모리 배리어(Memory Barrier)
이 코드를 읽고 실행해보자.
싱글쓰레드에서는 절대로 마지막 반복문을 빠져나올 수 없다.
하지만 생각보다 반복문을 잘 빠져나오는 것을 알 수 있다.
이는, 멀티쓰레드에서는 하드웨어 최적화가 적용되기 때문이다.
즉, 하드웨어가 쓰레드(Thread_1,Thread_2)에 준 연산들이 서로 상관이 없는 연산이라고 생각하면 의 연산 순서를 임의로 바꾸어서 연산하는 경우도 있기 때문이다.
이 때 메모리 배리어(Memory Barrier)를 사용한다.
메모리 배리어를 사용한 를 실행해보면 반복문을 빠져나오지 못한다.
메모리 베리어를 통해 코드 재배치와 가시성을 확보 할 수 있다.
메모리 배리어의 가시성
멀티쓰레드 환경에서 한 쓰레드의 연산상황을 중앙 메모리에 업로드해서 다른 쓰레드도 지금 다른그 쓰레드의 변경된 값들을 반영할 수 있다. 이를 가시성이라 표현함
'Backend > Research' 카테고리의 다른 글
[캐쉬이론] 변수에 접근 시에 인접한 메모리 주소에 접근할 확률이 높은 것이라 예상한다. (0) | 2021.12.31 |
---|---|
RoboDK UA EXPERT를 이용한 OPCUA 통신 테스트 해보기 (0) | 2021.10.30 |
RoboDK 에 대한 간단한 소개 (0) | 2021.10.30 |