C#内置了对多线程编程的支持功能,所以相对于其他语言在多线程方面的问题,C#这里就已经最小化或者不复存在。在.Net FrameWork 4.0中,C#中添加了两个与多线程应用程序相关的重要功能:TPL(任务运行并行库)和PLINQ(并行LINQ)。两者都提供对并行编程的支持,都可以利用多处理器,也就是多核计算机。TPL简化了多线程应用程序的创建和管理,现在已经成为大多数情况下的推荐方式。

在学习以上两个新功能之前,先回顾一下基础。

几乎所有的面向对象方面的招聘的笔试或者面试都会问到的一个问题:进程和线程的区别?

今天在学习C#的多线程编程方面,把我的理解记录一下:

基于进程和基于线程是处理多任务的两种方式。进程本质上是一个正在执行的程序,因此 ,基于进程的多任务处理允许计算机同时运行两个或更多的程序,就比如你在浏览网页的同时还可以打开WORD。在基于进程的多任务处理中,程序是调度程序能够分配的最小代码单元。

线程则是可执行代码的可分派单元,在基于线程的多任务处理中,所有的进程至少有一个线程。也就是说,一个程序能够一次执行两个或者更多的操作。比如你打开一个文本编辑器,你可以在大于文件的同时格式化文本。

二者的不同可以这样概括:基于进程的多任务处理用来处理并发执行的程序,而基于线程的多任务处理用于处理同一个程序中并发执行的不同程序段。

下面简单介绍一下线程在代码中怎么创建和使用:

using System.Threading;  //支持多线程的类定义在该命名空间中

创建和启动线程的方式有很多,基础的如

Thread  thread=new Thread(obj.Function);  //obj.Function 代表线程的入口点,可以是类中的一个方法

thread.start(); //启动

thread.sleep(1000);//休眠,等待

thread.join();//等待直到线程结束,通常调用此方法是为了是程序在主线程中结束;

thread.Name="sss";  //设置线程的时间

if(thread.IsAlive);//判断线程是否结束

thread.IsBackground=true;  //设置为后台线程

今天太晚了,要休息了,就介绍这些最基础的吧,明天继续!

转载于:https://www.cnblogs.com/tthere/p/4063991.html

[C#学习]多线程编程——多线程基础相关推荐

  1. Java基础了解-12-网络编程/发送邮件/多线程编程/Applet 基础/文档注释

    @ 网络编程/发送邮件/多线程编程/Applet 基础/文档注释 一.Java 网络编程 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. java.net 包中 J2SE ...

  2. 函数式编程基础_在收件箱中免费学习函数式编程的基础

    函数式编程基础 by Preethi Kasireddy 通过Preethi Kasireddy 在收件箱中免费学习函数式编程的基础 (Learn the fundamentals of functi ...

  3. java多线程基础视频_【No996】2020年最新 Java多线程编程核心基础视频课程

    01.课程介绍.mp4 02.多线程编程基础-进程与线程.mp4 03.多线程编程基础-使用多线程-继承Thread类.mp4 04.多线程编程基础-使用多线程-实现Runnable接口.mp4 05 ...

  4. Win32多线程编程(1) — 基础概念篇

    内核对象的基本概念 Windows系统是非开源的,它提供给我们的接口是用户模式的,即User-Mode API.当我们调用某个API时,需要从用户模式切换到内核模式的I/O System Servic ...

  5. 学习计算机编程的基础

    1.明确学习目的 学习编程对大多数IT业人员来说都是非常有用的.学编程,做一名编程人员,从个人角度讲,可以解决在软件使用中所遇到的问题,改进现有软件,可以为自己找到一份理想的工作添加重要得砝码,有利于 ...

  6. 【26天高效学习Java编程】Day19:60 多个实例讲解,彻底搞懂Java 多线程 【可查阅,可复习,可面试】

    本专栏将从基础开始,循序渐进,由浅入深讲解Java的基本使用,希望大家都能够从中有所收获,也请大家多多支持. 专栏地址:26天高效学习Java编程 相关软件地址:软件地址 所有代码地址:代码地址 如果 ...

  7. .NET多线程编程入门

    在.NET多线程编程这个系列我们讲一起来探讨多线程编程的各个方面.首先我将在本篇文章的开始向大家介绍多线程的有关概念以及多线程编程的基础知识;在接下来的文章中,我将逐一讲述.NET平台上多线程编程的知 ...

  8. Java多线程编程(1)--Java中的线程

    一.程序.进程和线程   程序是一组指令的有序集合,也可以将其通俗地理解为若干行代码.它本身没有任何运行的含义,它只是一个静态的实体,它可能只是一个单纯的文本文件,也有可能是经过编译之后生成的可执行文 ...

  9. Java多线程编程总结

    ava多线程编程总结 下面是Java线程系列博文的一个编目: Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换  Java线程:线 ...

最新文章

  1. SAP MM 不常用事务代码之MB59
  2. 理财工具——七大标准比率
  3. SaltStack组件
  4. [C++]const 总结
  5. hbase java 端口_HBase远程Java客户端尝试通过随机端口进行身份验证
  6. 「递归」第10集 | 一款“摔”出来的产品
  7. P5579-[PA2015]Siano【线段树】
  8. C语言之预处理探究(四):#、##和预定义宏
  9. 开源操作系统年度盛会最新日程曝光,邀您一同开启烧脑模式!
  10. 在线文本字符串批量替换工具
  11. matlab 连续相同数据库,MATLAB向量:防止来自相同范围的连续值
  12. java服务端用到的javase的基础知识_JavaSE——网络编程基础知识
  13. 使用DALSA采集卡进行采图(C#版)
  14. java使用itext实现把数据库中查到的数据转换成pdf
  15. 《视觉SLAM十四讲》-第五章第1节-1-“相机与图像”-“相机模型”-“针孔相机模型”-学习笔记总结
  16. 华芯超算技术负责人分享分布式存储技术核心
  17. html5写发送邮件源码,简单5步用 JavaScript 直接通过前端发送电子邮件
  18. 【reactor模式】【proactor模式】
  19. 思迈特软件Smartbi:10分钟教会你制作高难度的数据地图!
  20. 架构设计:系统存储(16)——Redis事件订阅和持久化存储

热门文章

  1. clob存base64文件存不进去_Kafka 和 RocketMQ 底层存储之那些你不知道的事
  2. oracle数据库res,ipcs、ipcrm、sysresv、kernel.shmmax
  3. aix解压tgz_AIX 上压缩与解压缩 各种文件格式原理说明
  4. 参加第十六届智能车竞赛同学提问与回答-6-30
  5. 第十五届智能车赛比赛 比赛组织参考文档
  6. NS4146 D类音频放大电路
  7. 自学php心得体会,php5 学习心得
  8. mysql 连续签到天数_天天拿帮会通宝 帮会签到真给力
  9. php要求输入是个数求平均值、_【227期】EXCEL求平均值的各种套路汇聚合,最后难倒70%的人...
  10. PHP中空格占位数吗,HTML空格占位