C#线程 多线程 进程

进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.

应用程序域:

使用.NET建立的可执行程序 *.exe,并没有直接承载到进程当中,而是承载到应用程序域(AppDomain)当中。应用程序域是.NET引入的一个新概念,它比进程所占用的资源要少,可以被看作是一个轻量级的进程。 在一个进程中可以包含多个应用程序域,一个应用程序域可以装载一个可执行程序(*.exe)或者多个程序集(*.dll)。这样可以使应用程序域之间实现深度隔离,即使进程中的某个应用程序域出现错误,也不会影响其他应用程序域的正常运作.

.NET上下文:

应用程序域是进程中承载程序集的逻辑分区,在应用程序域当中,存在更细粒度的用于承载.NET对象的实体,那就.NET上下文Context。 所有的.NET对象都存在于上下文当中,每个AppDomain当中至少存在一个默认上下文(context 0).

线程:

线程(Thread)是进程中的基本执行单元, 在进程入口执行的第一个线程被视为这个进程的主线程。 在.NET应用程序中,都是以Main()方法 作为入口的,当调用此方法时系统就会自动创建一个主线程.

进程,应用程序域,线程的关系:

一个进程内可以包括多个应用程序域,也有包括多个线程       线程也可以在多个应用程序域当中.但在同一个时刻,线程只会处于一个应用程序域内.

多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务.

多线程的好处:提高CPU的利用率 大大提高了程序执行效率           弊:线程也是程序 线程越多占用内存越多   线程之间共享资源的会相互影响   线程太多会造成Bug

前台线程和后台线程:

前台线程:只有所有的前台线程都结束,应用程序才能结束。默认情况下创建的线程都是前台线程

后台线程:只要所有的前台线程结束,后台线程自动结束。通过Thread.IsBackground设置后台线程。必须在调用Start方法之前设置线程的类型,否则一旦线程运行,将无法改变其类型。

线程同步:是指在某一时刻只有一个线程可以访问变量。

线程池的好处:减少创建和销毁线程上所花时间以及系统资源的开销       不适用线程池可能会造成创建大量线程而导致消耗完系统内存

 

转载于:https://www.cnblogs.com/h0906/p/11198650.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值