본문 바로가기

C#20

[C#] ThreadLocalStorage? https://rito15.github.io/posts/08-cs-thread-local-storage/ C# TLS(Thread Local Storage) Game Programmer rito15.github.io https://die4taoam.tistory.com/37 Linux의 thread local storage 파헤치기 Thread Local Storage 파헤치기 0. 개요Thread Local Storage는 Multi-Thread 프로그램을 작성하는데 거의 필수로 사용되는 기능이다.Linux에서의 Thread Local Storage에 대하 자세히 다뤄보고자 한다. 이 글에서 다루 die4taoam.tistory.com 오늘은 강의 듣기 귀찮아서 따로 조사... 정리하면 ThreadLo.. 2023. 4. 6.
[C#] ReadWriteLock 구현 class Program { static BitFlagLock locked = new BitFlagLock(); static int number = 0; const int offset = 100000; static void Main(string[] args) { Task t1 = new Task(Thread1); Task t2 = new Task(Thread2); t1.Start(); t2.Start(); Task.WaitAll(t1, t2); Console.WriteLine(number); } static void Thread1() { for (int i = 0; i < offset; i++) { locked.WriteLock(); locked.WriteLock(); number++; locked.Wr.. 2023. 4. 5.
[C#] 공변성, 반공변성 X가 Y가 될 수 있다면, F(X)도 F(Y)가 될 수 있다 > 공변성 X가 Y가 될 수 있다면, F(Y)가 F(X)가 될 수 있다 > 반공변성 이다. 인터페이스, 델리게이트에만 달 수 있는 제약조건임 https://edykim.com/ko/post/what-are-covariance-and-contravariance/ 공변성과 반공변성은 무엇인가?Stephan Boyer의 What are covariance and contravariance?을 번역한 글이다. 공변성과 반공변성은 무엇인가? 서브타이핑은 프로그래밍 언어 이론에서 까다로운 주제다. 공변성과 반공변성은 오해하기 쉬운 주edykim.com위는 이해할 때 도움이 된 글임 요약하면, 1. 함수 타입에서 반환 타입은 공변적(covariant) 이고.. 2023. 4. 4.
[C#] SpinLock 구현 class Program { static SpinLock locked = new SpinLock(); static int number = 0; const int offset = 100000; static void Main(string[] args) { Task t1 = new Task(Thread1); Task t2 = new Task(Thread2); t1.Start(); t2.Start(); Task.WaitAll(t1, t2); Console.WriteLine(number); } static void Thread1() { for (int i = 0; i < offset; i++) { locked.Acquire(); number++; locked.Release(); } } static void Thr.. 2023. 3. 29.