본문 바로가기
728x90

스레드2

[c#/유니티] Interlocked에 대해 * Interlocked란? int 형 값을 증가시키거나 감소시키는 데 사용하는 클래스 이다. 원자성과 순서를 보장해준다. (단점 : 성능에서 손해) 다음과 같이 int 형 전역 변수인 number를 공유하고 있는 상황에서 Thread_1과 Thread_2가 number를 증가시키거나 감소시키는 작업을 하려 한다. static int number = 0; //전역변수 static void Thread_1() { for (int i = 0; i < 100000; i++) number++; } static void Thread_2() { for (int i = 0; i < 100000; i++) number--; } 결과값으로 0을 기대 했지만, 이상한 값이 나오는 것을 볼 수 있다. 왜..? 🤔 threa.. 2022. 12. 7.
[c#/유니티] 스레드(Thread)와 스레드풀(ThreadPool) 프로세스와 스레드에 대해 먼저 알아보자. 프로세스 : 현재 실행 중인 프로그램 스레드 : 운영 체제가 프로세서 시간을 할당하는 기본 단위 / 명령어를 실행하기 위한 스케쥴링 단위 쉽게 말해서, 스레드는 작업자라고 생각하면 된다. 어떠한 업무가 주어졌을 때, 그 일을 수행하는 작업자가 바로 스레드 이다. * NameSpace(네임스페이스) 선언하기 using System.Threading; 스레드를 사용하기 위해서 다음과 같이 선언해주자 1) 스레드 선언하기 Thread t = new Thread(MainTread); 스레드를 사용하기 위해 다음과 같이 스레드 생성자를 만든다. 넘겨주는 MainTread 함수 또한 생성한다. static void MainTread(object state) { Console.. 2022. 12. 5.
728x90
반응형