惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
阮一峰的网络日志
阮一峰的网络日志
宝玉的分享
宝玉的分享
Hugging Face - Blog
Hugging Face - Blog
Y
Y Combinator Blog
Recorded Future
Recorded Future
博客园 - Franky
F
Fortinet All Blogs
The Register - Security
The Register - Security
雷峰网
雷峰网
博客园 - 【当耐特】
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
WordPress大学
WordPress大学
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Recent Announcements
Recent Announcements
S
Schneier on Security
Latest news
Latest news
S
Securelist
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Blog — PlanetScale
Blog — PlanetScale
L
Lohrmann on Cybersecurity
V
Visual Studio Blog
NISL@THU
NISL@THU
Cyberwarzone
Cyberwarzone
H
Hackread – Cybersecurity News, Data Breaches, AI and More
腾讯CDC
Spread Privacy
Spread Privacy
酷 壳 – CoolShell
酷 壳 – CoolShell
Security Latest
Security Latest
A
About on SuperTechFans
大猫的无限游戏
大猫的无限游戏
SecWiki News
SecWiki News
N
News and Events Feed by Topic
T
Threatpost
The GitHub Blog
The GitHub Blog
博客园_首页
F
Full Disclosure
爱范儿
爱范儿
The Hacker News
The Hacker News
T
The Blog of Author Tim Ferriss
Stack Overflow Blog
Stack Overflow Blog
Last Week in AI
Last Week in AI
月光博客
月光博客
C
Check Point Blog
G
Google Developers Blog
M
MIT News - Artificial intelligence
博客园 - 司徒正美

博客园 - 爱你的人

从ArcEngine的模板开始 ArcIMS9.3新特性 ArcIMS9.2补丁安装 构建自己的ExtJs 失败 文字布局(TEXT STYLE)标记(TAGS) 表格(TABLE)标记(TAGS) 表单(FORM)标记(TAGS) 表格进阶(TABLE ADVANCED) 多窗口页面(Frames) 页面(PAGE)标记(TAGS) 字体(FONT)标记(TAGS) 图象(IMAGE)标记(TAGS) 会移动的文字(Marquee) 多媒体页面(Alternative Inline Elements) HTML 标记(Tag)的索引(Index) 16.ListBox and StatusStrip C# 函数方法大全+学习笔记 14.PictureBox
多线程程序设计之一
爱你的人 · 2008-03-26 · via 博客园 - 爱你的人

多线程程序设计之一

     虽然C#包含了许多创新性特征,但其中最激动人心的一点却是它对多线程程序设计的内建支持。一个多线程程序包含两个或更多能够同时进行的部分。这种程序的每一部分称为一个线程。
1.多线程基础
     有两种截然不同的多任务处理:基于进程的和基于线程的。理解这两者间的不同很重要。进程本质上是一个正在执行的程序。因此,基于进程的多任务处理有允许计算机同时运行两个或多个程序的特征。在基于进程的多任务处理中,程序是调度程序能够调度的最小代码单元。
     线程是可执行代码的调度单元。在基于线程的多任务处理环境中,所有进程都至少有一个线程,而且可以更多这以为单一程序能够一次执行两个或多个任务。
     基于进程的多任务处理和基于线程的多任务处理之间的不同可以总结如下:基于进程的多任务处理处理当前执行的程序,而基于线程的多任务处理处理同一程序中当前执行的不同程序段。
     多线程的主要优点是它使人们能够编写非常有效的程序。可能大家都知道,大多数I/O装置,不管是网络端口、磁盘驱动器,还是键盘,其运行速度比CPU的速度慢得多。因此,程序往往需要花费大部分执行时间来等待发送到设备的信息。通过使用多线程,程序能够在它空闲的时间执行另一个任务。
     线程可以出于几种状态中。他可以正在运行,或等待取得CPU时间再进行运行。正运行的线程可以被挂起,这是线程执行的一种临时中断,稍后可以再继续运行它。线程等待资源时可能中断。线程可以被终止,在此情形下,结束该线程的执行并且不可再继续。
     .Net框架定义了两种类型的线程:前台和后台。默认情况下,创建线程时所创建的是前台线程,但是我们可以把它改成后台线程。前台线程和后台线程之间的唯一区别:当后台线程的进程中的所有前台线程已经停止时,后台线程将自动终止。
     随着基于线程的多任务处理的出现,也需要特征的特殊类型:同步,他允许线程的执行以某种明确的方式相协调。C#有一道完善的子系统来进行同步操作,在此将描述它的关键特征。
     所有进程都至少有一个执行线程,通常称它为主线程,因为它是当程序启动时要执行的线程。因此,主线程就是一般程序使用的线程。从主线程可以创建其它线程。
    支持多线程程序设计的类在System.Threading名字空间中定义,因此,在任何多线程程序的开头都要包括下面语句:
using System.Threading;

posted on 2008-03-26 21:05  爱你的人  阅读(255)  评论()    收藏  举报