第一天:

    CLR是怎样回收的:
   1、每次遇见new都分配内存,首先计算字段所需要空间,对象所需空间,
 包括同步索引块和类型对象指针,
   2、遍历线程堆栈,标记有用的对象,把没用的弹出。
   3、CLR分3代,第0代1代和2代。
   4、CLR在刚开始初始化时,托管堆中没有任何对象,生成新对象时,放入0代
  若0代满了,就会遍历线程堆栈,找不到引用的对象,就会从0代移除,把剩下的放入1代。
   5、生成新的放入0代,满了放入1,若1代满了,会触发1代的垃圾回收,把没用对象回收,把剩下的放入2代。
  重复这样的过程,就是CLR的垃圾回收。
第二天:

   1、多线程
     线程是操作系统分配处理器时间的基本单元,并且进程中可以有多个线程同时执行代码。
   2、多线程的调用以及线程的阻塞

class Program
    {
        static Thread ThrTest1, ThrTest2;
        static void Main(string[] args)
        {
            //多线程调用
            //Thread t1 = new Thread(F1);
            //Thread t2 = new Thread(F2);
            //object[] oo = new object[] { 1, 2, 3, 4, 5, 6 };
            //t1.Start(oo);
            //t2.Start();
            线程阻塞
            ThreadStart TS1 = new ThreadStart(WriteLine1);
            ThrTest1 = new Thread(TS1);
            ThreadStart TS2 = new ThreadStart(WriteLine2);
            ThrTest2 = new Thread(TS2);
            ThrTest1.Start();
            ThrTest2.Start();
        }
        public static void WriteLine1()
        {
            for (int i = 0; i < 20; i++)
            {
               
                Console.ForegroundColor = ConsoleColor.Blue;
                Console.WriteLine(i.ToString() + "WriteLine1");
                Thread.Sleep(500);
            }
        }
                public static void WriteLine2()
        {
            for (int i = 0; i < 20; i++)
            {
                if (i == 10)
                {
                    ThrTest1.Join();
                }
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(i.ToString() + "WriteLine2");
                Thread.Sleep(500);
            }
       


        }
        //多线程的调用
        //static void F1(object o)
        //{
        //    int i = 0;

        //    foreach (object o1 in (object[])o)
        //    {
        //        Console.WriteLine(o1);
        //        Thread.Sleep(200);
        //    }
        //    while (i < 15)
        //    {
        //        Console.WriteLine("111111111111111");
        //        Thread.Sleep(200);
        //        i++;
        //    }
        //}
        //static void F2()
        //{
        //    int i = 0;

        //    while (i < 15)
        //    {
        //        Console.WriteLine("222222222222222");
        //        Thread.Sleep(200);
        //        i++;
        //    }
        //}
    }


同步锁与线程的睡眠

public class BookShop
    {
        int num = 11;//共享资源
        int i = 0;
        int j = 0;
        public void Sale()
        {
            while (num > 0)
            {
                lock (this)//同步控制
                {
                    if (num > 0)
                    {   //卖书过程
                        Thread.Sleep(100);
                        num = num - 1;
                        Console.WriteLine( Thread.CurrentThread.Name+"售出一本");
                        if (Thread.CurrentThread.Name == "1号")
                        {
                            i++;
                        }
                        else
                        {
                            j++;
                        }
                    }
                    else
                    {
                        Console.WriteLine("没有了");
                        Console.WriteLine("一号售出{0}本,二号售出{1}本!",i,j);
                        if (i > j)
                        {
                            Console.ForegroundColor= ConsoleColor.Red;
                            Console.WriteLine("二号是特大笨笨!");
                            Console.ResetColor();
                        }
                    }
                }
            }
        }

        static void Main(string[] args)
        {
            BookShop a = new BookShop();
            Thread t1 = new Thread(new ThreadStart(a.Sale));
            Thread t2 = new Thread(new ThreadStart(a.Sale));
            t1.Priority = ThreadPriority.Lowest;
            t2.Priority = ThreadPriority.Highest;
            t2.Name = "二号";
            t1.Name = "一号";
            t1.Start();
            t2.Start();
        }
    }

3、TCP/IP
  是Internet是基本的协议、Internet国际互联网络的基础。
  是供已连接因特网的计算机进行通信的通信协议。
  定义了设备如何连入因特网,以及数据如何在它们之间传输的标准。
  IP—因特网协议,规定了信息的传输方法和传输路线。
  TCP:对方发了一个数据包,你要发一个确认数据包给对方,通过这种确认来提供可靠性。