Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
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
Archives
Today
Total
관리 메뉴

For me

[Server] 컴파일러 최적화 (Release) 본문

Server/Study

[Server] 컴파일러 최적화 (Release)

GiveZero 2023. 4. 25. 18:46

주의

using System;

namespace Server
{
    class Program
    {
        static bool _stop = false;

        static void ThreadMain()
        {
            Console.WriteLine("Thread Start");

            while (!_stop)
            {
                //Wait
            }
            
            //=>
            // if (!_stop)
            // {
            //     while (true)
            //     {
            //         
            //     }
            // }
            
            Console.WriteLine("Thread Finish");
        }
        
        static void Main(string[] args)
        {
            Task t = new Task(ThreadMain);
            t.Start();
            
            Thread.Sleep(1000);
            
            _stop = true;
            Console.WriteLine("Call Stop");
            Console.WriteLine("Waiting Finish");
            
            t.Wait(); // Release Build -> 종료 X
            
            Console.WriteLine("Success Finish");
        }
    }
}

Release 시 t.Wait에서 종료되지않음.

 

그 이유는 ThreadMain에서

 

while(!stop)

{

}

->

if(!stop)

{

  while(true){}

}  

 

로 최적화하기때문

'Server > Study' 카테고리의 다른 글

[Server] Lock - 2  (0) 2023.04.26
[Server] Lock - 1  (0) 2023.04.26
[Server] Interlocked  (1) 2023.04.26
[Server] MemoryBarrier  (0) 2023.04.25
[Server] 멀티쓰레드  (0) 2023.04.25