C# (3) 썸네일형 리스트형 C# 게임서버, Auto Reset Event, Manual Reset Event Lock을 하는 방법 중 하나는 SpinLock이 있지만 Auto Reset Event도 존재한다. Auto Reset Event는 커널에다가 Lock이 풀리면 사용할 수 있게 물어봐 놓고 기다렸다가 차례가 되면 사용하는 방식이라고 생각하면 편하다 Auto Reset Event와 Manual Reset Event 사이에는 사용을 할때 자동으로 AutoResetEvent는 false처리가 되고, Manual은 False 처리가 되질 않는다. 그래서 Manual Reset Event를 사용하면 가끔 데이터가 무결하지 않을 때도 있다. 그래서 Auto Reset Event를 사용하는 편. Auto Reset Event는 짧고 자주써야하는 쓰레드 일수록 커널과의 통신을 해야하기 때문에 시간적 비용이 높아져버린다.. C# 컨텍스트 스위칭 레지스터 : 핵심 정보들 (어떤 코드까지 실행했는지, 메모리의 위치들을 가지고있는지) PCB란 어떤 프로세스가 돌아가기 위한 정보라고 생각하면 된다. cpu는 여러 프로세스를 1초에 몇1000번씩 서로 돌아가면서 돌린다. 이 돌리는 상황을 컨텍스트 스위칭이라 하고, 컨텍스트 스위칭 도중에는 메모리에서 PCB정보를 가져와서 사용한다. C# 메모리 베리어. C#에서 멀티쓰레딩을 할 때, 각 쓰레드마다 접근 정보를 최신화하는 방식 중 하나로 메모리 베리어가 있다. 하드웨어가 서로 영향을 미치지 않는 연산이 있으면 어셈블리 순서를 임의로 바꿔버리는 행동을 할 때가 있다. C#에서 제공하는 thread memory barrier는 barrier instruction중 save와 load를 양쪽다 베리어를 걸어주는 instruction이 포함되어 있다. wekipedia를 보면 memory barrier insturction은 cpu나 compiler에게 memory operation의 순서를 제약한다고 나와있습니다. 코드 예제 // See https://aka.ms/new-console-template for more information using System.. 이전 1 다음