오늘의 코딩

C# Lock

용성 2022. 1. 26. 10:11
class Program
    {
        static void Main(string[] args)
        {
            Data myData = new Data();
            Thread my1 = new Thread(Myfun);
            Thread my2 = new Thread(Myfun);

            my1.Start(myData);
            my2.Start(myData);

            my1.Join();
            my2.Join();
        }

        private static void Myfun(object obj)
        {
            Data targetData = obj as Data;

            for (int i = 0; i < 10; i++){
                targetData.Increase();
                Console.WriteLine(targetData.num);
            }
        }
    }

    class Data
    {
        public int num = 0;
        private object obj = new object();

        public void Increase()
        {
            lock (obj)
            {
                this.num++;
                Thread.Sleep(5);
            }
        }
    }

728x90

'오늘의 코딩' 카테고리의 다른 글

C# Lock, Task  (0) 2022.01.26
C# Linq  (0) 2022.01.25
C# Thread  (0) 2022.01.24
C# delegate pizza  (0) 2022.01.24
C# listView  (0) 2022.01.23