Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
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