码迷,mamicode.com
首页 > 编程语言 > 详细

线程基础

时间:2016-06-30 01:05:07      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:

   Windows 为什么要支持线程?

    在早期的计算机,OS 没有线程的概念,整个系统执行着一个单线程,CPU 资源都被一个线程占用,你只能单一的处理一个

    计算任务,比如单一处理打印,或一些其他的计算任务,当任务出BUG现异常,程序会停止响应,处理方式就是重启机器,

    为了解决这个问题,基于多线程技术的操作系统MicroSoft Windows NT发展起来了.Windows NT 是最提出线程概念的Windows 

     OS.

     进程:抽象的概念是指应用程序要使用的资源的集合。

     线程:指对CPU 进行虚拟化.Windows 为每个进程都提供了该进程专用的线程(CPU 分片 抽象出来的一个专用CPU 概念)。

 

  线程开销:

  1.线程内核对象

  2.线程环境块

  3.用户模块栈

  4.内核模式堆栈

  5.DDL线程链接和线程分离(Attach AND detach)

  

  使用线程的理由:

  1.可响应性.

    Windows 为每个进程提供它自己的线程,确保发生死循环的时候应用程序不会阻止其他的应用程序,在GUI 应用程序中,可以将一些工作交给

  一个线程进行,使GUI 线程可以灵敏的响应用户,不会出现以前的那些windows 程序,冻结的情况。

  2.性能

    由于Windows 每个CPU 调度一个线程,而且多个CPU 能并发执行这些线程,所以,充分调动CPU 的计算能力,并发操作能显著的提高应用程序

  的性能。

 

  CLR 线程的种类

  1.前台线程:执行系统确实想要执行的任务,比如我想写一篇文章,比如处理我写文章的这个线程就是前台线程.

  2.后台线程:非关键性任务,比如写文章时候系统进行的拼写检查.

  

using System;
using System.Threading;
namespace BackGroundTreadTest
{
    class Program
    {
        static void Main()
        {
            Thread t = new Thread(Worker);
            t.IsBackground = true;//Change it to a background Thread
            t.Start();
            Console.WriteLine("Main Thread.....");
        }

        private static void Worker()
        {
            Thread.Sleep(10000);
            Console.WriteLine("Working....");
        }
    }
}

这一章节是操作系统线程的基本概念为异步并行编程做铺垫.

 

   

 

 

   

  

   

 

   

线程基础

标签:

原文地址:http://www.cnblogs.com/QuickTechnology/p/5628616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!