第一天:

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:对方发了一个数据包,你要发一个确认数据包给对方,通过这种确认来提供可靠性。

转载于:https://blog.51cto.com/benxiaozi/624842

.NET Framework第一二课(7/26、27)相关推荐

  1. 【C++探索之旅】第一部分第十二课:指针一出,谁与争锋

    内容简介 1.第一部分第十二课:指针一出,谁与争锋 2.第一部分第十三课预告:第一部分小测验 指针一出,谁与争锋 上一课<[C++探索之旅]第一部分第十一课:小练习,猜单词>中,我们用一个 ...

  2. 第一节课的Python基础知识

    第一节课的Python基础知识 Python内置的数据类型 1.number 2.string 3.list 4.tuple 5.dict 6.set 其他小结 方法range()的使用 获取一个li ...

  3. NeHe OpenGL第三十二课:拾取游戏

    NeHe OpenGL第三十二课:拾取游戏 拾取, Alpha混合, Alpha测试, 排序: 这又是一个小游戏,交给的东西会很多,慢慢体会吧   欢迎来到32课. 这课大概是在我所写作已来最大的一课 ...

  4. 领扣-26/27/80/283 数组专题 做好初始定义 双指针 MD

    目录 数组专题:做好初始定义 移动零 Move Zeroes -283 问题 答案 移除元素 Remove Element -27 问题 答案 删除排序数组中的重复项 -26 问题 记录位置法 快慢指 ...

  5. 计算机网络课程思政教学设计,信息与网络工程学院成功举办第一届课程思政教学设计大赛...

    为有效贯彻全国高校思想政治工作会议精神,强化课程思政建设,全面提高人才培养质量,根据<教务处关于举办第一届课程思政教学设计大赛的通知>要求,结合学院工作安排,7月18日,信息与网络工程学院 ...

  6. 小学计算机二课活动记录,小学教研活动记录

    小学教研活动记录 小学教研活动记录(一): 某某小学教研活动记录 2009-2010学年第二学期 时间:2010年4月6日 地点:大办公室 出席:全体教师 主题:精神传达 记录人:某某某 一.外出学习 ...

  7. 第一节计算机课开场白,第一节课有趣的开场白

    我是一名新老师,请问第一堂课的开场白怎么讲 我:上课 学生:起立 我:同学们好 学生:老师好 我:请坐 我:很高兴见到大家. 我是你们的英语(或其他的学科)老师 我叫* 老师有一个小小的请求. 大家一 ...

  8. 计算机老师给新生的第一堂课怎么讲,新老师如何讲好第一堂课?看这篇就够了!...

    原标题:新老师如何讲好第一堂课?看这篇就够了! 距11.3资格证笔试还有68天啦 新学期即将开始啦!在新生入学的同时,各学校也将迎来一批新教师,为校园注入新鲜的血液. 或许,作为一名新教师,也曾无数次 ...

  9. 量化交易 第十二课 因子数据处理之市值中性化

    第十二课 因子数据处理之市值中性化 概述 市值影响 怎么去除市值影响 回归法 简介 流程分析 代码实现 概述 众所周知, 行业和市值是两个十分显著对因子有影响力的因素. 在进行截面回归判断每个单因子的 ...

  10. OpenGL教程翻译 第二十二课 使用Assimp加载模型

    第二十二课 使用Assimp加载模型 原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载) 背景 到现在为止我们都在使用手动生成的模型.正如你所想的,指明每个顶点 ...

最新文章

  1. Lucene:基于Java的全文检索引擎简介(转载)
  2. python程序间通信,python 实现 socket 进程间通信
  3. python数学公式代码导入_在Matplotlib图中插入LaTex公式实例
  4. Python之web开发(三):python使用django框架搭建网站之SQLserver数据库连接
  5. 城市大脑背后的技术有哪些?
  6. Lodash 中文文档 (v3.10.1) - “Number” 方法
  7. 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018
  8. [转载] java语言程序设计-基础篇
  9. poj 1751 Highways 最小生成树Kruskal(、Prim还没写
  10. 在C++中各类型拼接成一个string
  11. Intelij的IDEA启动报错!parent directory is read-only or the user lacks necessary permissions
  12. 怎么用ps通道快速抠图?实用图解
  13. python写入excel文件出现nan_在python中使用Pandas ExcelWriter时处理Nan
  14. 有个程序媛上司是什么体验
  15. c语言逗号分隔字符串,[数字用逗号隔开怎么读]看到一个数字中间有逗号
  16. PYTHON h5py库包安装及读写
  17. B站首页(推荐页)分析
  18. Windows下免杀思路总结
  19. matlab之常用命令整理(持续更新中...)
  20. 2016年阿里校园招聘笔试题--系统工程师

热门文章

  1. 启动、停止和重新启动vcenter服务
  2. 搭建MHA时 yum 安装perl模块提示 baseurl 错误
  3. VS code不用集成终端如何修改并推送分支?
  4. mybatis批量操作
  5. 使用notebook 笔记(1)
  6. 在powerDesigner中通过SQL生成pdm
  7. 编码人员和美工的配合问题
  8. 被知乎反杀,是一种什么体验?
  9. ORA-28002 the password will expire
  10. 网络环境未能通过安全验证,请稍后再试