C# 线程(一)——概述

33 篇文章 1 订阅

进程和线程

    进程是一个执行程序。操作系统使用进程来分离正在执行的应用程序。线程是操作系统分配处理器时间的基本单元。每个线程都有一个调度优先级,并维护一组结构,当线程执行暂停时,系统使用这些结构保存线程上下文。线程上下文包括线程无缝恢复执行所需的所有信息,包括线程的一组CPU寄存器和堆栈。多个线程可以在进程的上下文中运行。进程的所有线程共享其虚拟地址空间。线程可以执行程序代码的任何部分,包括当前由另一个线程执行的部分。
举个例子的话,QQ是一个进程,World是一个进程,浏览器也是一个进程,这三个进程是完全独立的,但都可以同时运行在一个操作系统上。一部机器上同时可以跑不同的软件,这是由于有进程这个概念。
    那么,如果我们希望QQ单个进程同时可以聊天,又可以传输文件,又可以语音通话,那么就需要线程概念了,也就是一个进程里需要开辟出多个线程,每个线程干自己的事情。因此说,线程才是分配处理器事件的最基本单元。打开一个进程,那么肯定会自动创建至少一个线程,这个最基本的线程,我们一般叫做主线程。

.Net中怎么多线程

    从.NETFramework4开始,推荐使用多线程的方法是使用任务并行库(TPL)和并行LINQ(PLINQ)。这是新式招术。TPLPLINQ都依赖于ThreadPool线程。System.Threading.ThreadPool类为.NET应用程序提供一个工作线程池。也可以使用线程池线程。
    最后,可以使用表示托管线程的System.Threading.Thread类。这是旧的招术。
    多个线程可能需要访问共享资源。若要使资源保持未损坏状态并避免相互争用,必须控制线程之间的同步对它的访问。我们可能还需要协调多个线程的交互。NET提供了一系列类型(这些类型,我们称同步原语),可用于同步对共享资源的访问或协调线程交互。
    处理线程中的异常。线程中未处理的异常通常会终止进程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值