.NET Framework第一二课(7/26、27)
第一天:
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)相关推荐
- 【C++探索之旅】第一部分第十二课:指针一出,谁与争锋
内容简介 1.第一部分第十二课:指针一出,谁与争锋 2.第一部分第十三课预告:第一部分小测验 指针一出,谁与争锋 上一课<[C++探索之旅]第一部分第十一课:小练习,猜单词>中,我们用一个 ...
- 第一节课的Python基础知识
第一节课的Python基础知识 Python内置的数据类型 1.number 2.string 3.list 4.tuple 5.dict 6.set 其他小结 方法range()的使用 获取一个li ...
- NeHe OpenGL第三十二课:拾取游戏
NeHe OpenGL第三十二课:拾取游戏 拾取, Alpha混合, Alpha测试, 排序: 这又是一个小游戏,交给的东西会很多,慢慢体会吧 欢迎来到32课. 这课大概是在我所写作已来最大的一课 ...
- 领扣-26/27/80/283 数组专题 做好初始定义 双指针 MD
目录 数组专题:做好初始定义 移动零 Move Zeroes -283 问题 答案 移除元素 Remove Element -27 问题 答案 删除排序数组中的重复项 -26 问题 记录位置法 快慢指 ...
- 计算机网络课程思政教学设计,信息与网络工程学院成功举办第一届课程思政教学设计大赛...
为有效贯彻全国高校思想政治工作会议精神,强化课程思政建设,全面提高人才培养质量,根据<教务处关于举办第一届课程思政教学设计大赛的通知>要求,结合学院工作安排,7月18日,信息与网络工程学院 ...
- 小学计算机二课活动记录,小学教研活动记录
小学教研活动记录 小学教研活动记录(一): 某某小学教研活动记录 2009-2010学年第二学期 时间:2010年4月6日 地点:大办公室 出席:全体教师 主题:精神传达 记录人:某某某 一.外出学习 ...
- 第一节计算机课开场白,第一节课有趣的开场白
我是一名新老师,请问第一堂课的开场白怎么讲 我:上课 学生:起立 我:同学们好 学生:老师好 我:请坐 我:很高兴见到大家. 我是你们的英语(或其他的学科)老师 我叫* 老师有一个小小的请求. 大家一 ...
- 计算机老师给新生的第一堂课怎么讲,新老师如何讲好第一堂课?看这篇就够了!...
原标题:新老师如何讲好第一堂课?看这篇就够了! 距11.3资格证笔试还有68天啦 新学期即将开始啦!在新生入学的同时,各学校也将迎来一批新教师,为校园注入新鲜的血液. 或许,作为一名新教师,也曾无数次 ...
- 量化交易 第十二课 因子数据处理之市值中性化
第十二课 因子数据处理之市值中性化 概述 市值影响 怎么去除市值影响 回归法 简介 流程分析 代码实现 概述 众所周知, 行业和市值是两个十分显著对因子有影响力的因素. 在进行截面回归判断每个单因子的 ...
- OpenGL教程翻译 第二十二课 使用Assimp加载模型
第二十二课 使用Assimp加载模型 原文地址:http://ogldev.atspace.co.uk/(源码请从原文主页下载) 背景 到现在为止我们都在使用手动生成的模型.正如你所想的,指明每个顶点 ...
最新文章
- Lucene:基于Java的全文检索引擎简介(转载)
- python程序间通信,python 实现 socket 进程间通信
- python数学公式代码导入_在Matplotlib图中插入LaTex公式实例
- Python之web开发(三):python使用django框架搭建网站之SQLserver数据库连接
- 城市大脑背后的技术有哪些?
- Lodash 中文文档 (v3.10.1) - “Number” 方法
- 课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018
- [转载] java语言程序设计-基础篇
- poj 1751 Highways 最小生成树Kruskal(、Prim还没写
- 在C++中各类型拼接成一个string
- Intelij的IDEA启动报错!parent directory is read-only or the user lacks necessary permissions
- 怎么用ps通道快速抠图?实用图解
- python写入excel文件出现nan_在python中使用Pandas ExcelWriter时处理Nan
- 有个程序媛上司是什么体验
- c语言逗号分隔字符串,[数字用逗号隔开怎么读]看到一个数字中间有逗号
- PYTHON h5py库包安装及读写
- B站首页(推荐页)分析
- Windows下免杀思路总结
- matlab之常用命令整理(持续更新中...)
- 2016年阿里校园招聘笔试题--系统工程师